我正在构建一个 GO 应用程序,我想通过 http 服务器从缓冲区输出一个 cvs 字符串。我将其放入 csv 缓冲区:var buffer bytes.Bufferresp := csv.NewWriter(&buffer)resp.Write("Schröder")通过http服务器输出:resp.Flush()w.Header().Set("Content-Type", "text/csv; charset=utf-8")w.Write([]byte(buffer.String()))然后当我打开我的 url 时,会下载一个 csv 文件并由 Excel 打开。在该 excelsheet 中,字段值被转换为“Schröder”。任何想法,我已经在这个项目上呆了一个星期?
1 回答
不负相思意
TA贡献1777条经验 获得超10个赞
问题不在 Go 中,而在 Excel 中。保存文件时,数据以 UTF-8 编码的信息会丢失,因为保存的文件没有编码属性。
因此 Excel 将只看到计划数据并且没有关于编码的信息。有几个技巧可以让 Excel 做出正确的猜测,比如在文件开头放置正确的字节顺序标记 (BOM)。请参阅是否可以强制 Excel 自动识别 UTF-8 CSV 文件?. 但仅charset=utf-8
在 HTTPContent-type
标头中指定将无济于事,因为 Excel 无法获取此信息。
- 1 回答
- 0 关注
- 115 浏览
添加回答
举报
0/150
提交
取消