Maison  >  Article  >  développement back-end  >  Comment encoder correctement les caractères spéciaux en JSON avec la fonction json_encode() de PHP ?

Comment encoder correctement les caractères spéciaux en JSON avec la fonction json_encode() de PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-18 17:10:03161parcourir

How to Correctly Encode Special Characters in JSON with PHP's json_encode() Function?

Encodage JSON et caractères spéciaux

Lors de l'encodage de tableaux à l'aide de la fonction json_encode(), il peut arriver que des éléments contenant des caractères spéciaux soient convertis en chaînes vides. Ce comportement est particulièrement visible avec des caractères tels que les symboles de droit d'auteur ou de marque.

Pour résoudre ce problème, assurez-vous que toutes les données de chaîne sont codées en UTF-8 avant de les coder au format JSON. Ceci peut être réalisé en utilisant array_map() en conjonction avec la fonction utf8_encode() :

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

Comme indiqué dans le manuel PHP, json_encode() nécessite que toutes les données de chaîne soient codées en UTF-8. En codant les éléments du tableau en UTF-8 avant l'encodage JSON, nous garantissons que les caractères spéciaux sont correctement représentés dans la sortie JSON.

Pour plus de clarté, comparons les résultats de l'encodage d'un tableau avec et sans UTF-8. encodage :

Sans encodage UTF-8 :

<code class="php">$arr = ["funds" => "ComStage STOXX®Europe 600 Techn NR ETF"];
$json = json_encode($arr); // {"funds":null}</code>

Avec encodage UTF-8 :

<code class="php">$arr = array_map('utf8_encode', ["funds" => "ComStage STOXX®Europe 600 Techn NR ETF"]);
$json = json_encode($arr); // {"funds":"ComStage STOXX\u00c2\u00aeEurope 600 Techn NR ETF"}</code>

En appliquant le codage UTF-8, les caractères spéciaux sont correctement représentés dans la sortie JSON. N'oubliez pas d'utiliser utf8_encode() de manière cohérente pour un encodage correct.

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