0{r,size:=utf8. DecodeRune(content)br=a"/> 0{r,size:=utf8. DecodeRune(content)br=a">

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

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

王林
王林轉載
2024-02-06 08:27:09447瀏覽

讀取非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刪除