go - Go 如何将 3 字节序列转换为适当的 Unicode 字符?
问题描述
如果我们有字符世界,它们对应于字节 228 184 150 231 149 140,每个字节 3 个字节。如果我只是有[]byte{228, 184, 150, 231, 149, 140}
,Go 怎么知道将它们分成 3 个字节?如果我尝试打印出来fmt.Println(string([]byte{228}))
,我得到一个谜?象征。是不是当 Go 编译器看到 228 并且知道它需要读取更多字节才能找到正确的字符时?
解决方案
代码点的第一个字节指定代码点中的总字节数。有关详细信息,请参阅维基百科文章。Go 语言和库使用此计数将字节序列转换为代码点(也称为符文)
当写入 228 且没有两个尾随字节时,终端接收到无效的 UTF-8 字节序列。您的终端将无效字节显示为替换字符 �。
有关Go 语言中的字符串、字节和符文的更多详细信息,请参阅Go 博客字符串文章。
推荐阅读
- python-3.x - I want to change the date format of date_time column in csv and write back modified date format to to csv
- c# - SQLite with Entity Framework Core is slow
- c - Why am I getting extra character when trying to write to file?
- reactjs - 如何在 Next.js 中输入带有 props 的页面组件?
- google-chrome-devtools - Chrome DevTools and skipping view when resize in device mode
- forms - Limit selection of "select" field when date picker field is less or more than 14 days from today
- jquery - Only toggle first layer subnav on WordPress
- javascript - TypeError: setState is not a function. How can I clear this error in a functional React component?
- snowflake-cloud-data-platform - 如何在 Snowpark 中通过 TableFunction 使用分区
- javascript - 如何使用 IF 逻辑来获取特定值