Por que meu JSON fica embaralhado? Correcao de codificacao Unicode
2024-12-01
Chines ou emoji quebrado apos colar resposta de API? Muitas vezes o JSON esta correto: RFC 8259 exige UTF-8 para troca entre sistemas; o problema costuma estar na decodificacao.
JSON e Unicode
Strings podem conter Unicode bruto ou escapes \uXXXX; ambos decodificam para os mesmos caracteres.
RFC 8259 exige UTF-8 quando JSON e trocado entre sistemas; salve arquivos locais tambem em UTF-8.
{
"greeting": "Hello",
"escaped": "\u0048\u0065\u006c\u006c\u006f",
"emoji": "🎉"
}Sintomas comuns
Pontos de interrogacao ou �: dados decodificados como Latin-1/GBK em vez de UTF-8. Se no banco esta bom mas na exportacao quebra, o charset de exportacao esta errado.
Escapes \u
Alguns serializadores geram escapes ASCII-safe; os dados parseados continuam Unicode correto. Corrija a codificacao do transporte, nao os escapes.
HTTP Content-Type
application/json nao define parametro charset no IANA; os bytes ainda devem ser UTF-8 segundo RFC 8259.
Corrija headers incorretos do servidor em vez de aplicar gambiarras no cliente.
Armadilhas de BOM
RFC 8259 proibe enviar BOM em JSON de rede; alguns parsers ignoram, mas nao dependa disso.
Salve arquivos .json em UTF-8 sem BOM e observe caracteres ocultos ao copiar do Notepad no Windows.
Checklist
Verifique bytes UTF-8, codificacao do editor, parse online correto e depois ajuste o consumidor com problema na cadeia.