首頁 > 後端開發 > Golang > 讀取非UTF8編碼的檔案內容並正確列印出來

讀取非UTF8編碼的檔案內容並正確列印出來

王林
發布: 2024-02-06 08:27:09
轉載
449 人瀏覽過

讀取非UTF8編碼的檔案內容並正確列印出來

問題內容

我嘗試讀取非utf8編碼的檔案並列印出內容。喜歡:

content, _ := os.readfile("example.csv")
fmt.println(string(content))
登入後複製

輸出:

���������������������������

#然後,我嘗試轉換符文的內容並將其解碼為 utf8,如下所示:

br := make([]rune, 0)
for len(content) > 0 {
    r, size := utf8.DecodeRune(content)
    br = append(br, r)
    content = content[size:]
}
fmt.Println(string(br))
登入後複製

但是結果是一樣的。我怎樣才能獲得正確的內容? ps:我不知道檔案編碼類型,它們可以是raditionalchinese.big5或japanese.shiftjis等幾種類型,內容不能是檔案。它可以是一個字串。


正確答案


很可能您需要來自golang.org/x/ 的軟體包text/encoding 層次結構。

特別是 golang.org/x/text/encoding /charmap 允許建立 encoding。 Decoder 能夠將傳統非 UTF-8 編碼中的位元組流轉換為 Go 原生的 UTF-8 編碼資料流。

以上是讀取非UTF8編碼的檔案內容並正確列印出來的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板