Un escalar Unicode suplementario no cabe en un solo escape \u de cuatro dígitos. JSON lo representa con las dos unidades UTF-16 de una pareja sustituta válida.

Pareja válida

Introduce `"caf\u00e9 \ud83d\ude00"`, elige Desescapar una vez y Cadena JSON entre comillas. El resultado es `café 😀`. El primer escape representa é en el Plano Multilingüe Básico. El sustituto alto `\ud83d` y el bajo `\ude00` adyacentes se combinan en el escalar U+1F600. EscapeJSON cuenta tres secuencias consumidas, pero el emoji es un solo punto de código Unicode en el resultado.

Sustituto aislado no válido

Prueba después `"\ud83d"` o `"\ude00"`. EscapeJSON devuelve UNPAIRED_SURROGATE sin salida parcial. RFC 8259 advierte que escapes sustitutos aislados pueden causar comportamiento impredecible entre implementaciones, desde longitudes distintas hasta fallos de ejecución. Rechazarlos conserva un resultado Unicode interoperable en vez de insertar silenciosamente un carácter de sustitución o propagar UTF-16 mal formado.

Verifica destino y número de capas

Compara el resultado con los contratos productor y destino. El escape protege una sola gramática JSON; no sanea HTML, SQL, JavaScript, shell u otro analizador. Decodifica una capa revisada cada vez, rechaza Unicode mal formado y conserva un ejemplo conocido para integraciones importantes.