Maison > développement back-end > tutoriel php > Pourquoi les caractères Unicode spéciaux semblent-ils déformés après l'encodage JSON ?

Pourquoi les caractères Unicode spéciaux semblent-ils déformés après l'encodage JSON ?

Barbara Streisand
Libérer: 2024-12-10 18:03:17
original
895 Les gens l'ont consulté

Why Do Special Unicode Characters Appear Distorted After JSON Encoding?

Interprétation des caractères Unicode « spéciaux » codés en JSON

Lors de l'incorporation de caractères Unicode « spéciaux », ils apparaissent souvent déformés après avoir été encodés en JSON :

echo json_encode(['foo' => '馬']);
// Output: {"foo":"\u99ac"}
Copier après la connexion

Comprendre pourquoi cela se produit est crucial.

Encodage JSON Le codage JSON standard

exploite la formation littérale de chaîne ECMAScript (anciennement connue sous le nom de JavaScript) (Section 7.8.4). Il permet de représenter les caractères sous forme de nombres hexadécimaux préfixés par "u", suivis de quatre chiffres hexadécimaux représentant le point de code :

"\u99ac"
Copier après la connexion

Cette représentation, identique à la chaîne littérale "馬", véhicule le même Unicode caractère lorsqu'il est analysé par un analyseur JSON conforme.

Encodage JSON de PHP Préférence

La fonction json_encode de PHP encode souvent les caractères non-ASCII à l'aide de séquences d'échappement "u....". Bien que cela soit facultatif, cela produit un JSON valide.

Personnalisation de l'encodage

Si vous le souhaitez, l'indicateur JSON_UNESCAPED_UNICODE, introduit dans PHP 5.4, permet l'encodage des caractères littéraux :

echo json_encode(['foo' => '馬'], JSON_UNESCAPED_UNICODE);
// Output: {"foo":"馬"}
Copier après la connexion

Il est important de noter que cette personnalisation est une préférence plutôt qu'une nécessité pour la transmission Caractères Unicode en JSON.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal