我尝试读取非UTF8编码文件并打印出内容。
content, _ := os.ReadFile("example.csv")
fmt.Println(string(content))
输出:
"""""""""
然后,我尝试转换符文的内容并将其解码为utf8,如下所示:
br := make([]rune, 0)
for len(content) > 0 {
r, size := utf8.DecodeRune(content)
br = append(br, r)
content = content[size:]
}
fmt.Println(string(br))
但结果是一样的,我怎么才能得到正确的内容?PS:我不知道文件的编码类型,它们可以是几种类型,如radionalchinese.Big5或japanese。ShiftJIS和内容不能是文件。它可以是字符串。
1条答案
按热度按时间ia2d9nvy1#
最有可能的是,您需要来自
golang.org/x/text/encoding
层次结构的包。特别是,
golang.org/x/text/encoding/charmap
允许创建一个encoding.Decoder
,它能够将传统的非UTF-8编码的字节流转换为Go语言原生的UTF-8编码的数据流。