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
217 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!

sumber:php.cn
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