Correction des caractères UTF-8 mal formés lors de l'encodage PHP JSON
Introduction :
JSON est un format de données populaire pour transmettre et stocker des données indépendamment de la plate-forme. Cependant, des problèmes peuvent survenir lors de la tentative d'encodage de données contenant des caractères non UTF-8. Cette discussion aborde un problème courant rencontré lors de l'encodage JSON en PHP, spécifiquement lié aux caractères UTF-8 mal formés.
Problème :
Lors de l'utilisation de json_encode($data) pour coder un tableau contenant un champ avec des caractères russes, une erreur peut survenir en raison de caractères UTF-8 mal formés dans le texte. L'utilisation de mb_detect_encoding() révèle que le champ est correctement codé en UTF-8. Les tentatives d'utilisation de utf8_encode sur les données entraînent un contournement de l'erreur, mais cela compromet l'intégrité des données.
Solution :
Le problème réside dans la présence de non -Caractères UTF-8 dans le texte soi-disant codé en UTF-8. Pour résoudre ce problème, supprimez tous les caractères non UTF-8 du texte, en vous assurant que l'encodage reste cohérent tout au long.
Le code suivant résout efficacement ce problème :
<code class="php">$data['name'] = mb_convert_encoding($data['name'], 'UTF-8', 'UTF-8');</code>
Ce code convertit la valeur de la clé 'name' dans le tableau $data en codage UTF-8, en écrasant tous les caractères non UTF-8 par leurs équivalents UTF-8. Le résultat est une chaîne conforme à UTF-8 qui peut être encodée avec succès au format JSON.
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!