2010-06-30 5 views
3

Je reçois un tableau codé JSON de Facebook qui contient:problème d'encodage de caractères de Facebook JSON en HTML via PHP

[{ "message": "D \ u011bkujeme Zuzana Boh \ u00e1 \ u010dov \ u00e1 za na \ u0161i novou profilovou fotku: -) \ nNous merci Zuzana Boh \ u00e1 \ u010dov \ u00e1 pour notre nouveau profil image :-) "}]

Lorsque je décode la sortie JSON et la contenu Je reçois:

DÄ> kujeme Zuzana BoháÄová za naÅ¡i novou profilovou fotku :-) Nous remercions Zuzana BoháÄová pour notre nouveau profil image :-)

je mb_detect_encoding($message) et c'est au format utf-8 mais comment puis-je convertir les caractères prêts pour la consommation humaine?

+2

Comment vous « Décoder le JSON » et où voulez-vous « sortie le contenu »? Cela fonctionne bien dans ce Visualiseur JSON par exemple: http://chris.photobooks.com/json/default.htm – MvanGeest

Répondre

3

Vous obtenez tous les octets corrects, mais sont les afficher de manière incorrecte.

Assurez-vous que vous utilisez le jeu de caractères correct dans votre en-tête de type de contenu. La meilleure façon de le faire en PHP est comme si

ini_set('default_charset', 'UTF-8'); 

Mais vous êtes également invités à faire

header('Content-Type: text/html; charset=utf-8'); 
+0

Merci beaucoup, je vois ce que je faisais mal maintenant que le navigateur ne connaissait pas le format pour afficher les caractères. Une autre leçon apprise. Je vais marquer le tien comme la réponse car tu étais un tout 15 secondes plus vite que Daniel;) – Alex

3

PHP décode très bien. Lors de la sortie au navigateur, assurez-vous de faire quelque chose comme cela pour que vous ne mélangez pas les jeux de caractères dans votre application:

header('Content-type: text/html; charset=utf-8'); 
+0

Merci Daniel, votre réponse et Peters a fait le travail parfaitement. +1 – Alex