Maison > développement back-end > tutoriel php > Comment « json_encode » de PHP gère-t-il les caractères Unicode et comment puis-je contrôler la sortie ?

Comment « json_encode » de PHP gère-t-il les caractères Unicode et comment puis-je contrôler la sortie ?

Susan Sarandon
Libérer: 2024-12-11 01:18:14
original
784 Les gens l'ont consulté

How Does PHP's `json_encode` Handle Unicode Characters and How Can I Control the Output?

Encodage JSON et affichage des caractères Unicode

Lors de l'encodage de chaînes contenant des caractères Unicode "spéciaux" à l'aide de la fonction json_encode de PHP, elles apparaissent souvent comme tronquées en hexadécimal chaînes codées. Par exemple :

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

Comprendre le codage de chaîne JSON

En JSON, les littéraux de chaîne peuvent être représentés sous forme de points de code Unicode échappés par une barre oblique inverse ("u"). Cela permet le codage de n'importe quel caractère, quel que soit son codage dans le jeu de caractères d'origine. Ainsi, la chaîne JSON ci-dessus est parfaitement valide et représente le même caractère que son homologue non codé ("馬").

Préférence d'encodage par défaut de PHP

La fonction json_encode de PHP donne la priorité l'utilisation de séquences d'échappement "u" pour coder les caractères non-ASCII. Ceci est conforme à la norme JSON et garantit la portabilité des données JSON. Si vous le souhaitez, vous pouvez désactiver cette préférence en spécifiant l'indicateur JSON_UNESCAPED_UNICODE :

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

Représentation Unicode dans JSON

Il est important de noter que les caractères Unicode échappés et non codés ont la même signification et la même valeur dans JSON. Le choix du codage dépend des exigences spécifiques de la structure des données. Cependant, la forme échappée est généralement préférée pour l'interopérabilité et la compatibilité avec différentes plates-formes et applications.

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