Maison >développement back-end >tutoriel php >Comment gérer les caractères UTF-8 mal formés dans l'encodage PHP JSON ?

Comment gérer les caractères UTF-8 mal formés dans l'encodage PHP JSON ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-19 08:05:30247parcourir

How to Handle Malformed UTF-8 Characters in PHP JSON Encoding?

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!

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