Pourquoi les caractères Unicode "spéciaux" apparaissent codés avec u.... Séquences en JSON
Lors de l'encodage de caractères Unicode "spéciaux" avec PHP json_encode, ils apparaissent souvent sous la forme de chaînes littérales inconnues préfixées par « u ». Ce comportement est inhérent au mécanisme de codage des caractères de JSON et n'indique aucune erreur de codage.
JSON permet aux caractères d'être représentés par des séquences d'échappement u...., où .... désigne le point de code Unicode du caractère. . Ceci est équivalent à la façon dont les chaînes littérales dans ECMAScript (JavaScript) sont formées.
Par exemple, le caractère "馬" peut être représenté par "馬" ou "u99ac" en JSON. Les deux littéraux représentent le même caractère et sont également valides. Lorsqu'ils sont analysés par un analyseur JSON conforme, ils produiront tous deux la même chaîne.
Par défaut, json_encode de PHP favorise les séquences d'échappement u.... pour les caractères non-ASCII. Cependant, vous pouvez remplacer cette préférence en spécifiant l'indicateur JSON_UNESCAPED_UNICODE dans PHP 5.4 ou version ultérieure. Cela entraînera une sortie JSON avec des caractères littéraux au lieu de séquences d'échappement :
json_encode(['foo' => '馬'], JSON_UNESCAPED_UNICODE); // Output: {"foo":"馬"}
Il est important de noter que la spécification de JSON_UNESCAPED_UNICODE est une préférence personnelle et non une exigence pour le transport de caractères Unicode dans JSON. Les séquences d'échappement et les caractères littéraux sont également valables dans la représentation 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!