亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Golang 中解碼 UTF-16BE CSV 文件

如何在 Golang 中解碼 UTF-16BE CSV 文件

Go
SMILET 2023-06-01 14:09:44
我正在嘗試在 Golang 中解碼以 UTF-16BE 編碼的 CSV 文件。我必須為新閱讀器調用的 charmap ISO 字符號是多少?我想調用csv.NewReader(charmap.XXXX.NewDecoder().Reader(file))XXXX 的值應該是多少?
查看完整描述

2 回答

?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

您可以使用golang.org/x/text/encoding/unicode.UTF16從目標 UTF-16 Little/Big-Endian 編碼創建解碼器到 UTF-8。

下面的代碼顯示了 UTF-16 LE 的工作示例(Go playground):

dec := unicode.UTF16(unicode.LittleEndian, unicode.UseBOM).NewDecoder()

utf16r := getUTF16LittleEndianCSVReader()

utf8r := transform.NewReader(utf16r, dec)


csvr := csv.NewReader(utf8r)

records, err := csvr.ReadAll()

// TODO: handle err


fmt.Printf("%#v", records)

// [][]string{[]string{"id", "name"}, []string{"1", "foo"}}

切換到 Big-endian 應該像下面這樣簡單:


enc := unicode.UTF16(unicode.BigEndian, unicode.UseBOM).NewDecoder()


查看完整回答
反對 回復 2023-06-01
?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

你試過這個嗎?

unicode.UTF16(BigEndian,?UseBOM)


查看完整回答
反對 回復 2023-06-01
?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

經過一番審查,這段代碼提供了一種將 UTF16 解碼為 UTF8 的簡單方法:

https://gist.github.com/bradleypeabody/185b1d7ed6c0c2ab6cec#file-gistfile1-go


查看完整回答
反對 回復 2023-06-01
  • 2 回答
  • 0 關注
  • 234 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號