Comment encoder des caractères non-ASCII en JSON avec UTF-8 à l'aide de « json_encode » de PHP ?

Linda Hamilton
Libérer: 2024-10-27 00:15:02
original
149 Les gens l'ont consulté

How to Encode Non-ASCII Characters in JSON with UTF-8 Using PHP's `json_encode`?

Comment renvoyer PHP json_encode avec un encodage UTF-8 au lieu d'Unicode

Lors de l'utilisation de la fonction json_encode de PHP, par défaut, les caractères non-ASCII sont codés au format Unicode. Cela se traduit par une réponse JSON avec des séquences d'échappement telles que "u00e1" au lieu de caractères codés en UTF-8 comme "á".

Prenons cet exemple :

<code class="php">$arr = array('a' => 'á');
echo json_encode($arr);</code>
Copier après la connexion

Le résultat serait :

<code class="json">{"a":"\u00e1"}</code>
Copier après la connexion

Pour résoudre ce problème et renvoyer la réponse JSON avec des caractères codés en UTF-8, vous pouvez utiliser les approches suivantes :

PHP 5.4 :

À partir de PHP 5.4, json_encode fournit l'option JSON_UNESCAPED_UNICODE. En définissant cette option, les caractères non-ASCII seront codés en UTF-8 sans séquences d'échappement.

<code class="php">echo json_encode($arr, JSON_UNESCAPED_UNICODE);</code>
Copier après la connexion

Anciennes versions de PHP :

Pour les versions antérieures à PHP 5.4, ​​vous pouvez implémenter votre propre encodeur JSON qui omet de coder les caractères non-ASCII. Alternativement, vous pouvez utiliser l'encodeur JSON de Pear et supprimer les lignes 349 à 433 de la fonction d'encodage.

Veuillez noter que la différence entre {"a": "u00e1"} et {"a": "á"} c'est simplement la façon dont ils sont écrits dans la syntaxe JSON. Les deux représentations seront décodées dans la même valeur Unicode par les décodeurs 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!

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!