Go中如何将十六进制字符串直接转为[]byte?

How to transfer hex strings to []byte directly in Go?

问题很简单,

如何将"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) 打印字节切片,则打印的值将采用十进制格式,这就是它与您的输入不匹配的原因 string (因为它是以十六进制格式指定的).
fmt.Println(data) 的输出将是:

[70 68 115 129]

这些是相同的数字,只是以十进制表示。