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.