Gestion des caractères UTF-8 mal formés dans l'encodage PHP JSON
Lorsque vous utilisez json_encode() pour sérialiser un tableau contenant des caractères russes, vous pouvez rencontrer une erreur liée à des caractères UTF-8 mal formés. Pour résoudre ce problème, effectuez les étapes suivantes :
Étape 1 : Identifiez l'encodage des caractères
Utilisez mb_detect_encoding() pour déterminer l'encodage du champ contenant des caractères russes. Confirmez qu'il s'agit bien d'UTF-8, comme indiqué dans votre exemple.
Étape 2 : Supprimez les caractères non UTF-8
Bien que le champ puisse être principalement encodé en UTF-8, il peut toujours contenir des caractères non UTF-8. Pour les supprimer, utilisez la fonction mb_convert_encoding() :
<code class="php">$data['name'] = mb_convert_encoding($data['name'], 'UTF-8', 'UTF-8');</code>
Cette action remplacera tous les caractères non UTF-8 par leurs représentations d'espace réservé équivalentes, garantissant que la chaîne reste valide pour l'encodage JSON.
Étape 3 : Sérialiser avec l'encodage JSON
Une fois les caractères non UTF-8 supprimés, vous pouvez réussir à sérialiser les données à l'aide de json_encode(). Le JSON résultant sera valide et contiendra la représentation correcte des caractères russes.
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!