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.