Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Membaca Fail Teks Berkod Bukan UTF-8 dalam Go?

Bagaimana untuk Membaca Fail Teks Berkod Bukan UTF-8 dalam Go?

Mary-Kate Olsen
Lepaskan: 2024-12-01 03:29:13
asal
292 orang telah melayarinya

How to Read Non-UTF-8 Encoded Text Files in Go?

Membaca Fail Teks Bukan UTF-8 dalam Go

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)
    }
}
Salin selepas log masuk

Contoh ini menggunakan transformasi.NewReader untuk membungkus os.Failkan objek dan lakukan penyahkodan segera daripada GBK ke UTF-8.

Nota Tambahan:

  • Pendekatan ini hanya menggunakan pakej yang disediakan oleh pengarang Go, menghapuskan kebergantungan pada pakej pihak ketiga atau cgo.
  • Anda boleh menukar dengan mudah pelaksanaan pengekodan untuk menyokong set aksara lain, seperti Big5, Windows1252 atau EUCKR.
  • Rujuk pakej golang.org/x/text/encoding dan golang.org/x/text/encoding/simplifiedchinese untuk mendapatkan maklumat lanjut butiran.

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan