Maison > développement back-end > tutoriel php > 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
Libérer: 2024-10-18 17:10:03
original
259 Les gens l'ont consulté

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

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

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

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!

source:php
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