為什么十六進制格式的西里爾字串與十六進制格式的西里爾字符不同?
str := "Э"
fmt.Printf("%x\n", str)
//result d0ad
str := 'Э'
fmt.Printf("%x\n", str)
//result 42d
uj5u.com熱心網友回復:
列印 a 的十六進制表示會string列印其位元組的十六進制表示,rune列印 a 的十六進制表示會列印它是別名的數字的十六進制表示(rune是 的別名int32)。
Gostring中的 s 保存文本的UTF-8編碼位元組序列。在 UTF-8 表示中,數字代碼 > 127 的字符(符文)具有多位元組表示。
在rune ЭUTF-8 (being [208, 173]) 中具有多位元組表示,與 32 位整數的多位元組表示不同1069 = 0x42d。整數在記憶體中使用二進制補碼表示。
推薦博文:Go 中的字串、位元組、符文和字符
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/473031.html
上一篇:如何排除溢位矩陣的坐標
