作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我们有字符世界,它们对应于字节 228 184 150 231 149 140,每个字节 3 个字节。如果我只有 []byte{228, 184, 150, 231, 149, 140}
,Go 怎么知道将它们分成 3 个字节?
如果我尝试打印 fmt.Println(string([]byte{228}))
,我得到一个谜?象征。是不是当 Go 编译器看到 228 并且知道它需要读取更多字节才能找到正确的字符时?
最佳答案
代码点的第一个字节指定代码点中的总字节数。见wikipedia article详情。 Go 语言和库使用此计数将字节序列转换为代码点(也称为 rune )
当写入 228 且没有两个尾随字节时,终端接收到无效的 UTF-8 字节序列。您的终端将无效字节显示为替换字符 �。
见Go Blog Strings article有关 Go 语言中的字符串、字节和 rune 的更多详细信息。
关于go - Go 如何将 3 字节序列转换为适当的 Unicode 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62827026/
我是一名优秀的程序员,十分优秀!