Maison  >  Article  >  développement back-end  >  Comment encoder des caractères UTF-8 dans une sortie PHP JSON sans échappement Unicode ?

Comment encoder des caractères UTF-8 dans une sortie PHP JSON sans échappement Unicode ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-26 20:51:03277parcourir

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

Préserver UTF-8 dans la sortie PHP JSON

Question :

Comment pouvez-vous empêcher la fonction json_encode de PHP de s'échapper non -Caractères ASCII sous forme de séquences Unicode ? La sortie souhaitée est constituée de caractères codés en UTF-8, et non de séquences Unicode. Par exemple, un tableau contenant la valeur "á" doit être codé comme {"a": "á"}, et non {"a": "u00e1"}.

Réponse :

Bien que la spécification JSON autorise les deux formats d'encodage, {"a": "u00e1"} et {"a": "á"} sont traités de la même manière par les décodeurs JSON.

Pour les versions PHP 5.4 et supérieures, json_encode fournit l'option JSON_UNESCAPED_UNICODE. Cette option génère des caractères codés UTF-8 bruts sans échappement.

<code class="php">$json = json_encode($arr, JSON_UNESCAPED_UNICODE);</code>

Pour les anciennes versions de PHP, envisagez les options suivantes :

  • Encodeur JSON personnalisé : Implémentez un encodeur JSON personnalisé qui omet les caractères d'échappement pour les caractères non-ASCII.
  • Encodeur JSON de Pear : Modifiez l'encodeur JSON Pear en supprimant les lignes 349 à 433. Cette section contient la logique d'échappement.

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!

Déclaration:
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