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

Rumah >pembangunan bahagian belakang >Golang >Baca kandungan fail yang tidak dikodkan UTF8 dan cetaknya dengan betul

Baca kandungan fail yang tidak dikodkan UTF8 dan cetaknya dengan betul

王林
王林ke hadapan
2024-02-06 08:27:09449semak imbas

Baca kandungan fail yang tidak dikodkan UTF8 dan cetaknya dengan betul

Kandungan soalan

Saya cuba membaca fail berkod bukan utf8 dan mencetak kandungannya. Seperti:

content, _ := os.readfile("example.csv")
fmt.println(string(content))

Keluaran:

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

Kemudian saya cuba menukar kandungan rune dan menyahkodnya kepada utf8 seperti ini:

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

Tetapi hasilnya tetap sama. Bagaimanakah saya boleh mendapatkan kandungan yang betul? ps: Saya tidak tahu jenis pengekodan fail, ia boleh terdiri daripada beberapa jenis seperti traditionalchinese.big5 atau japanese.shiftjis, dan kandungannya tidak boleh menjadi fail. Ia boleh menjadi rentetan.


Jawapan betul


Kemungkinan besar anda perlu datang dari hierarki golang.org/x/ 的软件包text/encoding.

Khususnya golang.org/x/text/encoding /charmapgolang.org/x/text/encoding /charmap 允许创建 encoding。Decoder membenarkan penciptaan pengekodan. Penyahkod boleh menukar strim bait dalam pengekodan tradisional bukan UTF-8 ke dalam strim data yang dikodkan UTF-8 asli Go.

Atas ialah kandungan terperinci Baca kandungan fail yang tidak dikodkan UTF8 dan cetaknya dengan betul. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam