Heim > Backend-Entwicklung > Golang > Wie behebt man den Fehler „Ungültiges Zeichen \'ï\' sucht nach Wertanfang' in JSON Unmarshal?

Wie behebt man den Fehler „Ungültiges Zeichen \'ï\' sucht nach Wertanfang' in JSON Unmarshal?

Susan Sarandon
Freigeben: 2024-12-02 17:15:15
Original
512 Leute haben es durchsucht

How to Fix

Fehlerbehandlung: Beheben eines Fehlers durch ungültige Zeichen beim JSON-Unmarshal

Eine Webdienstanfrage an Microsoft Translator ergab einen Fehler beim Versuch, die JSON-Ausgabe mit json.Unmarshal zu entmarshalieren. Der konkret aufgetretene Fehler war „Ungültiges Zeichen ‚ï‘ sucht nach Wertanfang.“

Untersuchung des Problems

Bei der Prüfung der JSON-Antwort als Zeichenfolge wurde deutlich, dass die Daten gültig schienen . Beim Vergleich der Byte-Arrays der Antwort und einer manuell gemarshallten Version der erwarteten Daten wurde jedoch eine Diskrepanz festgestellt.

Identifizierung des Problems

Die Diskrepanz wurde auf das Vorhandensein einer Byte Order Mark zurückgeführt (BOM) in der Antwort. Eine Stückliste ist ein Sonderzeichen, das die Kodierung einer Textdatei identifiziert, in diesem Fall UTF-8.

Auflösung

Die Stückliste muss vor der Dekodierung der JSON-Antwort entfernt werden. Dies kann mit der folgenden Codezeile erreicht werden:

body = bytes.TrimPrefix(body, []byte("\xef\xbb\xbf")) // Or []byte{239, 187, 191}
Nach dem Login kopieren

Erklärung

Die Funktion bytes.TrimPrefix entfernt das BOM vom Anfang des Body-Byte-Arrays und ermöglicht so das nachfolgende json.Unmarshal Der Vorgang kann fortgesetzt werden, ohne dass der Fehler „Ungültiges Zeichen“ auftritt.

Fazit

Der Fehler „Ungültiges Zeichen“. „ï“ sucht nach dem Anfang des Werts“ während json.Unmarshal kann durch eine Stückliste in der JSON-Antwort verursacht werden. Durch das Entfernen der Stückliste mit der Funktion bytes.TrimPrefix wird das Problem behoben und die Daten können erfolgreich entmarshaled werden.

Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „Ungültiges Zeichen \'ï\' sucht nach Wertanfang' in JSON Unmarshal?. 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