我正在尝试将ISO 8859-1编码的字符串转换为UTF-8。


以下函数适用于包含德语变音符的testdata,但是我不太确定假设使用哪种编码rune(b)强制转换的源。它是否假设某种默认编码,例如ISO8859-1,或者有什么方法可以告诉它使用哪种编码?


func toUtf8(iso8859_1_buf []byte) string {

   var buf = bytes.NewBuffer(make([]byte, len(iso8859_1_buf)*4))

   for _, b := range(iso8859_1_buf) {

      r := rune(b)

      buf.WriteRune(r)

   }

   return string(buf.Bytes())

}