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

ISO-8859-1 到 UTF8 的转换

ISO-8859-1 到 UTF8 的转换

Go
holdtom 2021-06-09 18:00:34
以下代码段将ISO-8859-1编码文本转换为UTF8. 我不完全明白这里发生了什么。有人可以解释为什么会这样吗?var utf8Buf bytes.Bufferfor _, b := range iso8859Slice {  utf8Buf.WriteRune(rune(b))}utf8Str := utf8Buf.String()
查看完整描述

2 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

循环获取 iso8859Str 切片的每个字节,假设它是类型 []byte

由于 iso-8859-1 被合并为 Unicode 的前 256 个代码点,因此您无需从 iso-8859-1 实际转换为 Unicode。

但是,您需要做的是对 Unicode 符文进行 UTF-8 编码。这是由 Buffer.WriteRune() 完成的

WriteRune 将 Unicode 代码点 r 的 UTF-8 编码附加到缓冲区


查看完整回答
反对 回复 2021-06-28
?
四季花海

TA贡献1811条经验 获得超5个赞

第一:如果是字符串类型,则不起作用iso8859Str

但是如果 iso8859Str是 []byte 类型,您的range子句会遍历字节,这就是 unicode 的设计方式:ISO 8859-1 中的字节对应于相同的 unicode 代码点。


查看完整回答
反对 回复 2021-06-28
  • 2 回答
  • 0 关注
  • 483 浏览
慕课专栏
更多

添加回答

举报

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