为什么十六进制格式的西里尔字符串与十六进制格式的西里尔字符不同?str := "Э"fmt.Printf("%x\n", str)//result d0ad str := 'Э'fmt.Printf("%x\n", str)//result 42d
1 回答
哔哔one
TA贡献1854条经验 获得超8个赞
打印 a 的十六进制表示string
打印其字节的十六进制表示,打印 a 的十六进制表示打印rune
它作为别名的数字的十六进制表示(rune
is an alias to int32
)。
Go 中的sstring
保存文本的UTF-8编码字节序列。在 UTF-8 表示中,数字代码 > 127 的字符(符文)具有多字节表示。
在 UTF-8 中具有rune
Э
多字节表示(即[208, 173]
),它与 32 位整数的多字节表示不同1069 = 0x42d
。整数在内存中使用二进制补码表示。
推荐博文:Go 中的字符串、字节、符文和字符
- 1 回答
- 0 关注
- 372 浏览
添加回答
举报
0/150
提交
取消