Ungültige UTF-8-Bytereihenfolgemarkierung in JSON-Antwort
Beim Verwenden von JSON zum Dekodieren einer Antwort von Microsoft Translator ist ein Fehler aufgetreten ungültige Zeichen. Die JSON-Nachricht enthielt eine Unicode Byte Order Mark (BOM), dargestellt durch das Zeichen ï' (ASCII-Code 239), die Probleme beim Unmarshalling verursachte.
Grundlegende Informationen zu Byte Order Marks
Eine Unicode-Stückliste ist eine spezielle Zeichenfolge, die die Kodierung einer Textdatei identifiziert. Dies ist jedoch für JSON-Antworten nicht erforderlich und kann beim Dekodieren zu Komplikationen führen.
Beheben des Problems
Um den Fehler durch ungültige Zeichen zu beheben, müssen Sie die Stückliste entfernen aus der Antwort, bevor die JSON-Daten entmarshallt werden. Dies kann mit dem folgenden Code erreicht werden:
body = bytes.TrimPrefix(body, []byte("\xef\xbb\xbf")) // Or []byte{239, 187, 191}
Diese Zeile entfernt die Stückliste vom Anfang des Antworttexts, sofern vorhanden, sodass Sie die JSON-Daten korrekt entmarshalieren können.
Hinweis: Die Fehlermeldung „Ungültiges Zeichen ï' sucht nach Wertanfang“ impliziert, dass die Stückliste als ISO-8859-1-Zeichen interpretiert wurde. was dazu führte, dass im dekodierten JSON ungültige Zeichen auftauchten.
Das obige ist der detaillierte Inhalt vonWie behebe ich „Ungültige UTF-8-Byte-Reihenfolgemarkierung in JSON-Antwort' von Microsoft Translator?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!