Heim > Backend-Entwicklung > Golang > Wie gehe ich mit nicht-UTF-8-kodiertem XML in Go um?

Wie gehe ich mit nicht-UTF-8-kodiertem XML in Go um?

Mary-Kate Olsen
Freigeben: 2024-12-26 03:28:15
Original
1002 Leute haben es durchsucht

How to Handle Non-UTF-8 Encoded XML in Go?

Verarbeitung von Nicht-UTF-8-XML-Eingaben in Go

Beim Versuch, eine XML-Eingabe mithilfe der Unmarshal-Funktion im XML-Paket von Go zu entmarshalieren, Es kann zu Problemen kommen, wenn die Eingabe nicht in UTF-8 kodiert ist. Um dieses Problem zu beheben, ist ein CharsetReader erforderlich.

Wo man einen CharsetReader findet

Glücklicherweise bietet das net/html-Paket von Go eine Lösung in Form von charset.NewReaderLabel. Dieser Reader kann die Konvertierung von nicht UTF-8-codierten Eingaben in UTF-8 verarbeiten.

Aktualisierte Lösung für 2015 und darüber hinaus

In früheren Versionen von Go, a Es musste ein benutzerdefinierter CharsetReader implementiert werden. Neuere Versionen von Go bieten jedoch eine einfachere Lösung mit charset.NewReaderLabel. Hier ist ein aktualisierter Codeausschnitt:

import (
    "encoding/xml"
    "bytes"
    "golang.org/x/net/html/charset"
)

// ...
reader := bytes.NewReader(theXml)
decoder := xml.NewDecoder(reader)
decoder.CharsetReader = charset.NewReaderLabel
err = decoder.Decode(&parsed)
Nach dem Login kopieren

Durch die Verwendung von charset.NewReaderLabel als CharsetReader kann die Unmarshal-Funktion jetzt nicht-UTF-8-codierte XML-Eingaben ohne manuelle Konvertierung oder benutzerdefinierte Implementierungen erfolgreich verarbeiten.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit nicht-UTF-8-kodiertem XML in Go um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage