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.