Pourquoi mon JSON est-il illisible ? Correctifs d'encodage Unicode

2024-12-01

Du texte CJK ou des emoji casses apres collage d'une reponse API ? Le JSON est souvent correct : RFC 8259 impose UTF-8 pour l'echange inter-systemes ; l'erreur vient generalement du decodage.

JSON et Unicode

Les chaines peuvent contenir du Unicode brut ou des echappements \uXXXX ; les deux donnent le meme caractere apres decodage.

RFC 8259 exige UTF-8 quand JSON circule entre systemes ; enregistrez aussi les fichiers locaux en UTF-8.

{
  "greeting": "Hello",
  "escaped": "\u0048\u0065\u006c\u006c\u006f",
  "emoji": "🎉"
}

Symptomes courants

Points d'interrogation ou � : donnees decodees en Latin-1/GBK au lieu de UTF-8. Donnee correcte en DB mais cassee a l'export : charset d'export incorrect.

Echappements \u

Certains serializers emettent des echappements ASCII-safe ; les donnees parsees restent un Unicode correct. Corrigez l'encodage du transport, pas les echappements.

HTTP Content-Type

application/json ne definit pas de parametre charset dans IANA ; les octets doivent tout de meme etre UTF-8 selon RFC 8259.

Corrigez les mauvais en-tetes serveur plutot que de multiplier les contournements cote client.

Pieges du BOM

RFC 8259 interdit l'envoi d'un BOM sur du JSON reseau ; certains parseurs l'ignorent, mais il ne faut pas en dependre.

Sauvegardez les fichiers .json en UTF-8 sans BOM et surveillez les caracteres caches en copiant depuis Notepad sous Windows.

Checklist

Verifiez les octets UTF-8, l'encodage de l'editeur, le rendu du parseur en ligne, puis corrigez le consommateur fautif dans la chaine.