2010-01-30 7 views
1

J'ai le texte dans ce format les validations d'entr\u00e9es au lieu de les validations d'entrées.Codage PHP "les validations d'entr u00e9es"

Ceci est à partir de Twitter API .json et je voudrais traduire le \u00e9 au é mais ne trouve pas un moyen de le faire.

Je suppose que c'est unicode alors comment puis-je traduire ces caractères en PHP?

Exemple de code que je l'ai déjà:

$this->jsonArray = json_decode($this->jsonData, true); 
//... Loop ... 
$output .=' <li class="twit">'.$this->jsonArray[$x]['text'] //.... 

Répondre

1

Utilisation json_decode:

$ raw = "{\" \ data ": \" les ENTR d'validations \ u00e9es \ "}" ; var_dump (json_decode ($ raw));

Résultat:

objet (stdClass) [2] 'données' => Chaîne publique 'les validations D'entrées' (longueur = 26)

+0

J'ai déjà: $ this-> jsonArray = json_decode ($ this-> jsonData, true); –

1

D'accord, je pensais qu'il était Unicode mais était UTF8 ... En utilisant la méthode PHP utf8_decode résoudre le problème. Merci Eric de me signaler le json_decode mais il semble que cela nécessite d'avoir quelque chose de plus.

+0

Vous pouvez également convertir les références \ uxxxxx en entités HTML: '& # x00e9;' fonctionne aussi, mais je ne comprends pas complètement la logique derrière cela (quel jeu de caractères fait-il référence?) –

+0

Si vous êtes mutilé caractères alors il y a un problème d'encodage. Les fonctions json_ * fonctionnent avec les données utf8. Si vous attendez un autre encodage alors oui, vous devrez utiliser quelque chose comme utf8_decode comme vous l'avez posté. Si vous le pouvez, essayez d'évoluer vers un environnement unicode plus progressif. Il y a beaucoup d'informations à ce sujet, donc je ne vais pas le répéter ici. Si vous ne pouvez pas faire cela, je recommande au minimum d'utiliser iconv avec translittération. –

+0

Merci Eric pour le commentaire. J'accepterai votre réponse pour vous donner une certaine réputation. Merci –