0{r,size:=DecodeRune(content) br=a"/> 0{r,size:=DecodeRune(content) br=a">
Heim >Backend-Entwicklung >Golang >Lesen Sie nicht UTF8-codierte Dateiinhalte und drucken Sie sie korrekt aus
Ich versuche, eine nicht utf8-codierte Datei zu lesen und den Inhalt auszudrucken. Wie:
content, _ := os.readfile("example.csv") fmt.println(string(content))
Ausgabe:
������������������������������
Dann versuche ich, den Inhalt der Rune zu konvertieren und sie wie folgt in utf8 zu dekodieren:
br := make([]rune, 0) for len(content) > 0 { r, size := utf8.DecodeRune(content) br = append(br, r) content = content[size:] } fmt.Println(string(br))
Aber das Ergebnis ist das gleiche. Wie erhalte ich den richtigen Inhalt? ps: Ich kenne den Dateikodierungstyp nicht. Es können verschiedene Typen sein, z. B. „traditionalchinese.big5“ oder „japanisch.shiftjis“, und der Inhalt kann keine Datei sein. Es kann eine Zeichenfolge sein.
Höchstwahrscheinlich müssen Sie aus der golang.org/x/ 的软件包text/encoding
Hierarchie kommen.
Insbesondere golang.org/x/text/encoding /charmap
golang.org/x/text/encoding /charmap
允许创建 encoding。Decoder
ermöglicht die Erstellung von Kodierungen. Decoder
kann Byteströme in herkömmlichen Nicht-UTF-8-Kodierungen in die nativen UTF-8-kodierten Datenströme von Go konvertieren.
Das obige ist der detaillierte Inhalt vonLesen Sie nicht UTF8-codierte Dateiinhalte und drucken Sie sie korrekt aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!