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

Lesen Sie nicht UTF8-codierte Dateiinhalte und drucken Sie sie korrekt aus

王林
王林nach vorne
2024-02-06 08:27:09449Durchsuche

Lesen Sie nicht UTF8-codierte Dateiinhalte und drucken Sie sie korrekt aus

Frageninhalt

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.


Richtige Antwort


Höchstwahrscheinlich müssen Sie aus der golang.org/x/ 的软件包text/encoding Hierarchie kommen.

Insbesondere golang.org/x/text/encoding /charmapgolang.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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen