慕工程0101907
2021-09-21 22:11:51
我正在閱讀 golang 中的 unicode 名稱。我的結(jié)構(gòu)項目是字符串類型,但我認(rèn)為這不正確。是否有關(guān)于如何在 golang 結(jié)構(gòu)中正確存儲 unicode 字符串的示例?當(dāng)我使用 csv.NewReader 讀取 CSV 文檔并將其打印到屏幕時,它工作正常,但是一旦作為字符串進(jìn)入結(jié)構(gòu)中,它就不再正確打印。這似乎是一個簡單的字節(jié)/字符串問題,但我很難解決它。我嘗試在結(jié)構(gòu)中使用 []byte,但是后來我如何比較字符串以及我將該 []byte 正確打印到文件的方式是什么?由于我以 RDF 格式寫入文件,我懷疑我需要轉(zhuǎn)換為 UTF-8 或其他格式?
2 回答

慕雪6442864
TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個贊
這取決于您所說的“unicode”是什么意思。Go 中的一切都應(yīng)該是 UTF-8,包括string數(shù)據(jù)類型,所以你可能不需要做任何事情(只要你處理 UTF-8)。
[]byte只是一系列字節(jié)。它對其中的數(shù)據(jù)不透明。您無需執(zhí)行任何特殊操作即可將其寫入文件。
該STDLIB有unicode,unicode/utf8和unicode/utf16包。如果您需要,這里還有一個規(guī)范化包:http : //godoc.org/golang.org/x/text/unicode/norm
這篇博文可以比我們在這里回答更深入地解釋它,并且有一些指向更多資源的鏈接:http : //blog.golang.org/strings

萬千封印
TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個贊
Go 期望將字符串?dāng)?shù)據(jù)編碼為 UTF-8。如果您的輸入數(shù)據(jù)使用不同的編碼,則需要先將其轉(zhuǎn)換為 UTF-8,然后再將其分配給字符串。
您可以手動執(zhí)行此操作,也可以使用go-charset等第三方庫
- 2 回答
- 0 關(guān)注
- 234 瀏覽
添加回答
舉報
0/150
提交
取消