我運(yùn)行此代碼并獲得輸出,但為什么字節(jié)值為 E4B8AD 而 int 值為 20013。為什么第 2 列不等于第 5 列?包主import( "fmt")func main(){ str2 := "中文" fmt.Println("index int(rune) rune char bytes") for index, rune := range str2{ fmt.Printf("%-2d %d %U '%c' %X\n", index, rune, rune, rune, []byte(string(rune))) }}輸出是:index int(rune) rune char bytes0 20013 U+4E2D '中' E4B8AD1 25991 U+6587 '文' E69687
1 回答

POPMUISE
TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
字符的 Unicode 代碼點(diǎn)不一定與給定字符編碼中該字符的字節(jié)表示相同。
對(duì)于字符中
,代碼點(diǎn)是U+4E2D
,但是各種字符編碼中的字節(jié)表示是:
E4B8AD
(UTF-8)4E2D
(UTF-16)00004E2D
(UTF-32)
- 1 回答
- 0 關(guān)注
- 134 瀏覽
添加回答
舉報(bào)
0/150
提交
取消