Comment encoder JSON en UTF-8 sans échapper aux caractères Unicode
En PHP, la fonction json_encode() convertit les valeurs en chaînes JSON en Par défaut, cependant, il échappe les caractères Unicode dans leur représentation de point de code Unicode. Cela peut être indésirable dans certains scénarios où la sortie nécessite un codage UTF-8 au lieu des codages Unicode.
Considérez l'exemple suivant :
<code class="php">$arr = ['a' => 'á']; echo json_encode($arr);</code>
La sortie attendue est "a": "á ", mais le résultat réel est {"a": "u00e1"}. En effet, la fonction json_encode() a codé le caractère « á » dans sa représentation de point de code Unicode, qui est « u00e1 ».
Solution :
Pendant qu'il y a n'existe pas d'option intégrée dans les versions PHP antérieures à 5.4 pour désactiver l'échappement Unicode dans json_encode(), il existe quelques solutions de contournement pour y parvenir :
<code class="php"><?php header('Content-Type: application/json'); $arr = ['a' => 'á']; echo json_encode($arr, JSON_UNESCAPED_UNICODE); ?></code>
Cela affichera la chaîne JSON souhaitée : "a": "á".
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!