以下代码段将ISO-8859-1
编码的文本转换为UTF8
。我不完全了解这是怎么回事。有人可以解释为什么这样做吗?
var utf8Buf bytes.Buffer
for _, b := range iso8859Slice {
utf8Buf.WriteRune(rune(b))
}
utf8Str := utf8Buf.String()
最佳答案
该循环假定iso8859Str slice 的每个字节均为[]byte
类型
由于将iso-8859-1合并为Unicode的前256个代码点,因此您无需从iso-8859-1实际转换为Unicode。
但是,您需要对UTF-8编码Unicode rune 进行编码。这是通过Buffer.WriteRune()完成的