我try 读取非UTF8编码的文件并打印出内容.喜欢:

content, _ := os.ReadFile("example.csv")
fmt.Println(string(content))

输出:

✓dzè✓

然后,我try 将符文的内容转换为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:我不知道文件编码类型,它们可以是几种类型,像Raditionalchines.Big5或Japan.ShiftJIS和内容不能是文件.它可以是一个字符串.

推荐答案

最有可能的是,您需要来自golang.org/x/text/encoding层次 struct 的包.

具体地说,golang.org/x/text/encoding/charmap允许创建能够将传统非UTF-8编码的字节流转换为UTF-8编码的数据流的encoding.Decoder.

Go相关问答推荐

golang父进程的副本无法进行https/tls调用并获得tls:未能验证证书""

+在具有html/模板Golang的Base64中

错误.如果它包含切片,则返回FALSE

Websocket服务器实现与x/net库trowing 403

创建服务时云运行触发器执行失败

如果values.yaml文件中不存在某个属性,如何返回默认的FALSE?

无法使用exec从管道中读取.Go中的命令

`docker system df` 与 `/system/df` (docker api 端点)

无法读取postman 中的表单数据

如何在golang中使用viper获取对象的配置数组?

使用golang sqlc中的引用参数

Go time.Parse 无效的 ISO 日期

对 CSV 进行单元测试失败

Dockerfile 问题 - 为什么找不到二进制 dlv - 没有这样的文件或目录

切片到数组指针的转换

自定义指标未显示在 prometheus web ui 中,grafana 中也是如此

Go 导入范围查找 protobuf 类型

防止在 Go 公用文件夹中列出目录

有没有办法在golang中映射一组对象?

如何使用通用字段初始化匿名struct数组