问题很简单,
如何将 "46447381"
传输到 []byte{0x46,0x44,0x73,0x81}
?
最佳答案
只需使用 hex.DecodeString()
功能:
s := "46447381"
data, err := hex.DecodeString(s)
if err != nil {
panic(err)
}
fmt.Printf("% x", data)
输出:
46 44 73 81
在 Go Playground 上试试.
注意:
如果您只是简单地使用 fmt.Println(data)
打印字节 slice ,打印的值将采用十进制格式,这就是它与您输入的 string
不匹配的原因> (因为它是以十六进制格式指定的)。
fmt.Println(data)
的输出为:
[70 68 115 129]
这些是相同的数字,只是以十进制表示。
关于string - Go中如何将十六进制字符串直接转为[]byte?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28404326/