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

王林
Freigeben: 2024-02-06 08:27:09
nach vorne
461 Leute haben es durchsucht

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))
Nach dem Login kopieren

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))
Nach dem Login kopieren

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!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage