Maison > développement back-end > tutoriel php > Comment encoder JSON en UTF-8 sans échapper aux caractères Unicode en PHP ?

Comment encoder JSON en UTF-8 sans échapper aux caractères Unicode en PHP ?

Linda Hamilton
Libérer: 2024-10-31 03:42:30
original
326 Les gens l'ont consulté

How to Encode JSON in UTF-8 Without Escaping Unicode Characters in PHP?

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>
Copier après la connexion

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 :

  1. Lancer votre propre encodeur JSON : Créez un encodeur JSON personnalisé qui n'encode pas les caractères non-ASCII.
  2. Utilisez l'encodeur JSON de Pear : Utilisez l'encodeur JSON Pear et supprimez les lignes 349 à 433, qui sont responsables de l'échappement Unicode. .
  3. Utiliser PHP 5.4 : Dans PHP 5.4 et les versions ultérieures, la fonction json_encode() fournit une option JSON_UNESCAPED_UNICODE qui permet une sortie simple sans échappement Unicode. Voici un exemple utilisant cette option :
<code class="php"><?php
header('Content-Type: application/json');
$arr = ['a' => 'á'];
echo json_encode($arr, JSON_UNESCAPED_UNICODE);
?></code>
Copier après la connexion

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!

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