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.
Kemungkinan besar anda perlu datang dari hierarki golang.org/x/ 的软件包text/encoding
.
Khususnya golang.org/x/text/encoding /charmap
golang.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!