2 回答

TA貢獻(xiàn)1789條經(jīng)驗 獲得超8個贊
您可以使用golang.org/x/text/encoding/unicode.UTF16
從目標(biāo) UTF-16 Little/Big-Endian 編碼創(chuàng)建解碼器到 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 應(yīng)該像下面這樣簡單:
enc := unicode.UTF16(unicode.BigEndian, unicode.UseBOM).NewDecoder()

TA貢獻(xiàn)1848條經(jīng)驗 獲得超2個贊
經(jīng)過一番審查,這段代碼提供了一種將 UTF16 解碼為 UTF8 的簡單方法:
https://gist.github.com/bradleypeabody/185b1d7ed6c0c2ab6cec#file-gistfile1-go
- 2 回答
- 0 關(guān)注
- 230 瀏覽
添加回答
舉報