Por que mi JSON se ve corrupto? Soluciones de codificacion Unicode
2024-12-01
Pegaste una respuesta de API y ves caracteres rotos o emoji incompletos? Muchas veces el JSON esta bien: RFC 8259 exige UTF-8 para intercambio entre sistemas; el fallo suele estar al decodificar.
JSON y Unicode
Las cadenas pueden contener Unicode directo o escapes \uXXXX; ambas formas se decodifican al mismo caracter.
RFC 8259 exige UTF-8 cuando JSON se intercambia entre sistemas; guarda archivos locales tambien en UTF-8.
{
"greeting": "Hello",
"escaped": "\u0048\u0065\u006c\u006c\u006f",
"emoji": "🎉"
}Sintomas comunes
Signos de interrogacion o �: se decodifico como Latin-1/GBK en lugar de UTF-8. Si en DB esta bien pero en exportacion no, el charset de exportacion es incorrecto.
Escapes \u
Algunos serializadores emiten escapes ASCII-safe; los datos parseados siguen siendo Unicode correcto. Corrige la codificacion del transporte, no los escapes.
HTTP Content-Type
application/json no define parametro charset en IANA; los bytes igualmente deben ser UTF-8 segun RFC 8259.
Corrige los headers errados del servidor en vez de aplicar parches en cliente.
Riesgos de BOM
RFC 8259 prohibe enviar BOM en JSON de red; algunos parsers lo ignoran, pero no conviene depender de eso.
Guarda archivos .json en UTF-8 sin BOM y revisa caracteres ocultos al copiar desde Notepad en Windows.
Checklist
Verifica que los bytes sean UTF-8, que el editor use la misma codificacion, que el parseo online se vea correcto y luego corrige el consumidor que falla.