我想使用chardet并将golang.org/x/text非 utf-8 文件转换为 utf-8。但是,到目前为止,我发现的所有代码示例都要求用户对所需的转换方向进行硬编码。例如:
package main
import (
"fmt"
"io/ioutil"
"os"
"golang.org/x/text/encoding/charmap"
)
func main() {
// Write the string
// encoded to Windows-1252
encoder := charmap.Windows1252.NewEncoder()
s, e := encoder.String("This is sample text with runes Š")
if e != nil {
panic(e)
}
ioutil.WriteFile("example.txt", []byte(s), os.ModePerm)
// Decode to UTF-8
f, e := os.Open("example.txt")
if e != nil {
panic(e)
}
defer f.Close()
decoder := charmap.Windows1252.NewDecoder()
reader := decoder.Reader(f)
b, err := ioutil.ReadAll(reader)
if err != nil {
panic(err)
}
fmt.Println(string(b))
}
我需要如何更改以下行:
decoder := charmap.Windows1252.NewDecoder()
接受 IANA 代码以选择所需的解码器?(chardet返回小写代码页名称,例如windows-1250等windows-1252)