2017-09-19 1 views
1

J'utilise json_encode ($ data) pour un tableau de données et il y a un champ qui contient des caractères russes. J'ai utilisé mb_detect_encoding() pour afficher le codage de ce champ et il affiche UTF-8. Je pense que l'encodage de JSON a échoué en raison de certains mauvais caractères comme "ра▒". J'ai essayé beaucoup de choses sur utf8_encode sur les données et il va passer cette erreur mais ensuite les données ne semblent plus correctes.PHP json encoder - Caractères UTF-8 malformés, éventuellement incorrectement codés

Que peut-on faire avec ce problème?

+4

* J'ai essayé beaucoup de choses * - Comme quoi? S'il vous plaît nous montrer votre code/recherche. – Script47

+1

Avez-vous essayé l'option 'JSON_UNESCAPED_UNICODE'? – McRed

+0

Déjà essayé "JSON_UNESCAPED_UNICODE". Pas de travail. – sparkmix

Répondre

9

Le problème survient s'il y a des caractères non-utf8 à l'intérieur même si la plupart d'entre eux sont des caractères utf8. Cela supprimera tous les caractères non-utf8 et maintenant cela fonctionne.

mb_convert_encoding($data['name'], 'UTF-8', 'UTF-8'); 
+0

cela m'aider .. merci – Leoh

+0

Nicolas @ quoi d'autre vous pouvez dire et suggérer alors? Votre commentaire n'aide pas du tout. – sparkmix