Un scalaire Unicode supplémentaire ne tient pas dans un seul échappement \u à quatre chiffres. JSON l’exprime avec les deux unités UTF-16 d’une paire de substituts valide.
Paire valide
Saisissez `"caf\u00e9 \ud83d\ude00"`, choisissez Déséchapper une fois et Chaîne JSON entre guillemets. Le résultat est `café 😀`. Le premier échappement représente é dans le plan multilingue de base. Le substitut haut `\ud83d` et le bas `\ude00` adjacents forment le scalaire U+1F600. EscapeJSON compte trois séquences consommées, mais l’emoji compte pour un seul point de code Unicode dans le résultat.
Substitut isolé invalide
Essayez ensuite `"\ud83d"` ou `"\ude00"`. EscapeJSON rend UNPAIRED_SURROGATE sans sortie partielle. RFC 8259 avertit que des substituts isolés peuvent produire des comportements imprévisibles selon l’implémentation, notamment des longueurs différentes ou des erreurs d’exécution. Le refus préserve un résultat Unicode interopérable plutôt que d’insérer silencieusement un caractère de remplacement ou de propager un UTF-16 mal formé.
Vérifiez la destination et le nombre de couches
Comparez le résultat aux contrats producteur et destination. L’échappement protège une seule grammaire JSON ; il n’assainit ni HTML, SQL, JavaScript, shell ni un autre analyseur. Décodez une couche vérifiée à la fois, refusez l’Unicode mal formé et conservez un exemple de test connu pour les intégrations importantes.