为了账号安全,请及时绑定邮箱和手机立即绑定

Golang unicode 字符值

Golang unicode 字符值

Go
郎朗坤 2023-05-22 15:38:05
我运行此代码并获得输出,但为什么字节值为 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贡献1765条经验 获得超5个赞

字符的 Unicode 代码点不一定与给定字符编码中该字符的字节表示相同。

对于字符,代码点是U+4E2D,但是各种字符编码中的字节表示是:

  • E4B8AD(UTF-8)

  • 4E2D(UTF-16)

  • 00004E2D(UTF-32)

查看完整回答
反对 回复 2023-05-22
  • 1 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信