Warum sieht mein JSON kaputt aus? Unicode-Encoding richtig beheben
2024-12-01
Nach dem Einfügen einer API-Antwort sind Umlaute oder Emoji kaputt? Oft ist das JSON korrekt. RFC 8259 verlangt UTF-8 für den systemübergreifenden Austausch, der Fehler liegt meist beim Dekodieren.
JSON und Unicode
Strings können rohes Unicode oder \uXXXX-Escapes enthalten, beide Varianten dekodieren zu denselben Zeichen.
RFC 8259 verlangt UTF-8 beim Datenaustausch zwischen Systemen; speichere lokale Dateien ebenfalls in UTF-8.
{
"greeting": "Hello",
"escaped": "\u0048\u0065\u006c\u006c\u006f",
"emoji": "🎉"
}Häufige Symptome
Fragezeichen oder �: meist als Latin-1/GBK statt UTF-8 dekodiert. In der DB korrekt, beim Export kaputt: falsches Export-Charset.
\u-Escapes
Einige Serializer erzeugen ASCII-sichere Escapes; die geparsten Daten bleiben korrektes Unicode. Korrigiere die Transportkodierung, nicht die Escapes selbst.
HTTP Content-Type
application/json hat keinen IANA-charset-Parameter; die Bytes sollen laut RFC 8259 dennoch UTF-8 sein.
Fehlerhafte Server-Header sollten serverseitig korrigiert werden, statt Workarounds im Client zu bauen.
BOM-Fallen
RFC 8259 verbietet ein BOM bei JSON im Netzwerk. Parser können es ignorieren, darauf solltest du dich aber nicht verlassen.
Speichere .json als UTF-8 ohne BOM und achte beim Kopieren aus Windows-Editoren auf versteckte Zeichen.
Checkliste
Prüfe UTF-8-Bytes, passende Editor-Kodierung und korrekte Online-Darstellung, dann behebe den fehlerhaften Consumer in der Kette.