以下代码段将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()完成的

10-07 16:31