亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《GOLANG 字符串转 []byte 为何有时结果不同? 》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。,
,
golang 字符串转 []byte 为何不同?,当使用 []byte(str) 将字符串转换为字节切片时,结果可能与直接声明字节切片不同。,举个例子, 字符 ‘xa0’(空格字符)在转换为字节切片后,输出的是 [194 129],而直接声明字节切片 [129] 的话,输出的却是 [129]。,这是因为:,因此,当使用 []byte(str) 转换为字节切片时,会直接输出字符的 UTF-8 编码。,而直接声明字节切片,意味着指定了固定长度,此时 go 会根据长度将字节填充到切片中。如果长度不匹配字符的 UTF-8 编码宽度,就会导致结果不同。,要保证转换结果一致,可以使用 []rune(str) 将字符串转换为 rune 切片。rune 切片存储的是字符串中每个字符的 Unicode 码点,不会受到 UTF-8 编码的影响。,好了,本文到此结束,带大家了解了《GOLANG 字符串转 []byte 为何有时结果不同? 》,希望本文对你有所帮助!关注GOLANG公众号,给大家分享更多GOLANG知识!,字符 ‘xa0’ 的 UTF-8 编码是 [194 129],代表一个宽度为 2 个字节的字符。,go 中的字符串存储的是 UTF-8 编码的字节切片。,golang 字符串转 []byte 为何不同?,亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《GOLANG 字符串转 []byte 为何有时结果不同? 》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。,
当前位置: > > > > GOLANG 字符串转 []byte 为何有时结果不同?
GOLANG 字符串转 []byte 为何有时结果不同?
2024-10-29 10:15:55
0浏览
收藏
亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《GOLANG 字符串转 []byte 为何有时结果不同? 》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。
golang 字符串转 []byte 为何不同?
当使用 []byte(str) 将字符串转换为字节切片时,结果可能与直接声明字节切片不同。
举个例子, 字符 ‘xa0’(空格字符)在转换为字节切片后,输出的是 [194 129],而直接声明字节切片 [129] 的话,输出的却是 [129]。
这是因为:
- go 中的字符串存储的是 UTF-8 编码的字节切片。
- 字符 ‘xa0’ 的 UTF-8 编码是 [194 129],代表一个宽度为 2 个字节的字符。
因此,当使用 []byte(str) 转换为字节切片时,会直接输出字符的 UTF-8 编码。
而直接声明字节切片,意味着指定了固定长度,此时 go 会根据长度将字节填充到切片中。如果长度不匹配字符的 UTF-8 编码宽度,就会导致结果不同。
要保证转换结果一致,可以使用 []rune(str) 将字符串转换为 rune 切片。rune 切片存储的是字符串中每个字符的 Unicode 码点,不会受到 UTF-8 编码的影响。
好了,本文到此结束,带大家了解了《GOLANG 字符串转 []byte 为何有时结果不同? 》,希望本文对你有所帮助!关注GOLANG公众号,给大家分享更多GOLANG知识!
- 如何使用阿里 OSS 远程文件下载功能在 Django 应用中实现文件下载?
- CSS 属性探索:如何让元素形同虚设?