Heim >Backend-Entwicklung >Golang >Wie lese ich nicht-UTF-8-codierte Textdateien in Go?
In Go geht die Standardbibliothek von der UTF-8-Kodierung für alle Textdateien aus. Bei Dateien, die in anderen Zeichensätzen codiert sind, ist dies jedoch möglicherweise nicht der Fall. In diesem Artikel wird erläutert, wie Sie Nicht-UTF-8-Textdateien in Go mithilfe des Pakets golang.org/x/text/encoding lesen.
Das Paket golang.org/x/text/encoding bietet eine Schnittstelle für generische Zeichenkodierungen, die in und von UTF-8 konvertieren können. Beispielsweise stellt das Unterpaket golang.org/x/text/encoding/simplifiedchinese Encoder für GB18030, GBK und HZ-GB2312 bereit.
Beispiel:Lesen einer GBK-codierten Datei
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) } }
In diesem Beispiel wird ein transform.NewReader verwendet, um ein os.File-Objekt zu umschließen und Führen Sie eine On-the-Fly-Dekodierung von GBK nach UTF-8 durch.
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWie lese ich nicht-UTF-8-codierte Textdateien in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!