golang打开文件 以UTF8形式打开 求助

hellsam · · 2048 次点击
```go func OpenFile(path string) (str string, err error) { f, err := os.Open(path) if err != nil { return "", err } str0, err := ioutil.ReadAll(f) if err != nil { return "", err } str = string(str0) return ConvertToString(str, "gbk", "utf-8"), nil } func ConvertToString(src string, srcCode string, tagCode string) string { srcCoder := mahonia.NewDecoder(srcCode) srcResult := srcCoder.ConvertString(src) tagCoder := mahonia.NewDecoder(tagCode) _, cdata, _ := tagCoder.Translate([]byte(srcResult), true) result := string(cdata) return result } ```
#2
更多评论
文件打开的时候,不可能指定以什么字符集打开。 因为打开的文件都是2进制数组,是[]byte,不存在字符集。 和字符集有关的是string。 你需要用的是这个库 https://pkg.go.dev/golang.org/x/text/encoding https://pkg.go.dev/golang.org/x/text/encoding/simplifiedchinese
#1