byte数组转字符串?

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

使用 hex 包.


你这里c1是数组所以用:


hex.EncodeToString(c1[:])

如果是切片可以直接:


hex.EncodeToString(c1)

stevewang

赞同来自: simeon SuperFashi

fmt.Sprintf("%x", c1)

domac - life should be func

赞同来自:

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

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

赞同来自:

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

要回复问题请先登录注册