byte数组转字符串?

```go import "crypto/sha256" func main() { c1 := sha256.Sum256([]byte("x")) c2 := sha256.Sum256([]byte("X")) fmt.Printf("%x\n%x\n%t\n%T\n", c1, c2, c1 == c2, c1) // Output: // 2d711642b726b04401627ca9fbac32f5c8530fb1903cc4db02258717921a4881 // 4b68ab3847feda7d6c62c1fbcbeebfa35eab7351ed5e78f4ddadea5df64b8015 // false // [32]uint8 } ``` fmt包可以输出16进制的字符串,如何直接转成string
已邀请:

蜗牛

赞同来自: SuperFashi simeon philc trume

使用 hex 包.

你这里c1是数组所以用:
```go
hex.EncodeToString(c1[:])
```
如果是切片可以直接:
```go
hex.EncodeToString(c1)
```

stevewang

赞同来自: simeon SuperFashi

`fmt.Sprintf("%x", c1)`

domac - life should be func

```go
func bytesToString(b []byte) string {
return *(*string)(unsafe.Pointer(&b))
}
```

SuperFashi - To code or be coded, that's a question.

楼上两种方法都没有问题,但是那个指针的不推荐。

要回复问题请先登录注册