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!