Dalam Go, pustaka standard menganggap pengekodan UTF-8 untuk semua fail teks. Walau bagaimanapun, ini mungkin tidak berlaku untuk fail yang dikodkan dalam set aksara lain. Artikel ini menerangkan cara membaca fail teks bukan UTF-8 dalam Go menggunakan pakej golang.org/x/text/encoding.
Pakej golang.org/x/text/encoding menyediakan antara muka untuk generik pengekodan aksara yang boleh menukar kepada dan dari UTF-8. Contohnya, subpakej golang.org/x/text/encoding/simplifiedchinese menyediakan pengekod untuk GB18030, GBK dan HZ-GB2312.
Contoh: Membaca Fail Berkod GBK
package main import ( "bufio" "fmt" "log" "os" "golang.org/x/text/encoding/simplifiedchinese" "golang.org/x/text/transform" ) func main() { const filename = "example_GBK_file" // Read UTF-8 from a GBK encoded file f, err := os.Open(filename) if err != nil { log.Fatal(err) } r := transform.NewReader(f, simplifiedchinese.GBK.NewDecoder()) // Read converted UTF-8 from `r` as needed sc := bufio.NewScanner(r) for sc.Scan() { fmt.Printf("Read line: %s\n", sc.Bytes()) } if err := sc.Err(); err != nil { log.Fatal(err) } if err = f.Close(); err != nil { log.Fatal(err) } }
Contoh ini menggunakan transformasi.NewReader untuk membungkus os.Failkan objek dan lakukan penyahkodan segera daripada GBK ke UTF-8.
Nota Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Membaca Fail Teks Berkod Bukan UTF-8 dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!