我正在構建一個 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 關注
- 144 瀏覽
添加回答
舉報
0/150
提交
取消