2011-06-27 2 views
4

Je viens juste résolu la question de la sortie des caractères étrangers en utilisant la fonction de utf8_decode dans ce fil: How do I convert, display and store this characters in PHP?Comment puis-je décoder les caractères UTF8 à l'aide de jQuery?

Il fonctionne en écho directement les résultats, mais maintenant je cette fonction json_encode pour passer à jquery pour les résultats. Json_encode échappe à mes données quelque chose comme ceci:

{"title":"\u90ed\u5bcc\u57ce - \u641c\u7d22"} 

Comment puis-je json_decode de jquery? Merci pour tout conseil.

+0

Que voulez-vous dire en demandant * Comment puis-je json_decode de jquery? *? – hakre

+0

Désolé, mais je ne peux pas comprendre la réponse à la question que vous liez. Comment 'utf8_encode()' peut-il être utile dans un site qui utilise UTF-8. Cette fonction produit une sortie 'ISO-8859-1'! –

+0

Salut Alvaro, si vous vous référez à mon fil précédent: http://stackoverflow.com/questions/6495158/how-do-i-convert-display-and-store-this-characters-in-php Vous pouvez comprendre pourquoi je dois utf8_decode la chaîne. Seulement quand je utf8_decode la chaîne, je peux faire écho les caractères étrangers directement avec PHP. Mais maintenant je me suis rendu compte que le décoder et passer à json aura ce problème :( – pakito

Répondre

2

Soit vous écrivez directement dans JS, dans ce cas, ne rien faire ou que vous utilisez l'une des méthodes ajax jQuery, dans ce cas, il suffit de spécifier le dataType être "json"

+0

Salut, vous avez raison Quentin. Il fonctionne une fois que je mets cela. Je vous remercie et remercie tous ceux qui ont répondu à Merci encore – pakito

5

jQuery offre la méthode parseJSON directement à partir l'objet jQuery:

var data = $.parseJSON('{"title":"\u90ed\u5bcc\u57ce - \u641c\u7d22"}'); 

Pour l'extraction de données via AJAX, bien que, $.getJSON se déroulera de manière interne et passer le résultat de $.parseJSON comme résultat final de la demande.

+0

J'ai cette parseJSON dans jquery mais apparemment ne fonctionne pas :( – pakito

+1

Voir: http://pastie.org/2130655 – pakito

+0

@pakito: Eh bien, la méthode échoue car elle sort comme quelque chose comme '$. parseJSON ({title: "le titre"}) '.' parseJSON' attend une chaîne, pas un objet, mais puisque JSON est l'abréviation de JavaScript Object Not ation, et ceci est un contenu de confiance, vous pouvez simplement déposer le résultat de 'json_encode' dans le script:' 'var obj ='. $ title. ';' ' – Matchu

1

essayer

var obj = JSON.parse('{"title":"\u90ed\u5bcc\u57ce - \u641c\u7d22"}'); 
+0

J'ai eu Erreur: JSON.parse: caractère inattendu Le code de test peut être enregistré et exécuté directement ici: http://pastie.org/2130655 – pakito

Questions connexes