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"}
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":"馬"}
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!