Maison > Article > développement back-end > Pourquoi `json_encode` convertit-il UTF-8 en entités hexadécimales en PHP ?
Conversion d'entités UTF-8 en hexadécimal dans json_encode de PHP : plongée dans le comportement et les solutions
Dans les applications PHP qui gèrent des données multilingues, le La fonction json_encode pose souvent un défi déroutant. Lorsque des caractères Unicode sont rencontrés, ils sont automatiquement convertis en entités hexadécimales, perturbant la sortie Unicode souhaitée.
Explication :
Ce comportement découle du mécanisme d'encodage par défaut de json_encode . Il utilise JSON, qui s'attend à ce que les caractères Unicode soient représentés sous forme d'entités hexadécimales pour garantir la compatibilité entre différents systèmes et navigateurs. Cependant, cette conversion peut être indésirable lorsqu'il s'agit de scénarios spécifiques.
Solution :
Pour contrer ce comportement, une solution réside dans une option nouvellement introduite dans PHP 5.4. 0, JSON_UNESCAPED_UNICODE. Cette option demande à json_encode de laisser les caractères Unicode intacts sans les convertir en entités hexadécimales. En utilisant cette option, les caractères UTF-8 attendus peuvent être conservés :
json_encode($text, JSON_UNESCAPED_UNICODE);
Cette approche permet les entrées et sorties suivantes :
INPUT echo $text; OUTPUT База данни грешка.
INPUT json_encode($text, JSON_UNESCAPED_UNICODE); OUTPUT База данни грешка.
Avec cette technique, le Les complexités de la conversion Unicode dans la fonction json_encode de PHP peuvent être résolues efficacement, garantissant la préservation de la sortie Unicode souhaitée.
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!