為什么十六進制格式的西里爾字符串與十六進制格式的西里爾字符不同?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 關注
- 415 瀏覽
添加回答
舉報
0/150
提交
取消