1. 首页
  2. 主题
  3. Go问与答

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

hellsam · · 2492 次点击
GOLANG看了 ioutil.readXXX系列里 貌似没有类似 以UTF8等方法来打开 加入文本是gbk编码 我想加载进来后 以UTF8文件形式打开 有什么推荐吗 ~~~ 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 str, nil } ~~~
文件打开的时候,不可能指定以什么字符集打开。 因为打开的文件都是2进制数组,是[]byte,不存在字符集。 和字符集有关的是string。 你需要用的是这个库 https://pkg.go.dev/golang.org/x/text/encoding https://pkg.go.dev/golang.org/x/text/encoding/simplifiedchinese
#1
更多评论
```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

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中