2010-12-05 1 views
1

Je me demande comment échapper ces caractères spéciaux pour le décodeur json intégré php à comprendre, et quels sont ces caractères?PHP JSON décodeur renvoie NULL s'il contient & ou é ou caractères spéciaux

Exemple: json_decode('{"text":"test & test"}',true);

Retours NULL

J'essaie d'utiliser \ pour y échapper, mais cela ne fonctionne pas (ne fonctionne que pour les citations).

Une solution?

+1

Que JSON semble être bien; sauf '' '', '\' et les caractères de contrôle, tout caractère Unicode est autorisé dans une chaîne JSON – Gumbo

+1

[Works for me.] (http://pastie.org/1350172) A quoi ressemble votre code PHP? – Matchu

+2

['json_decode'] (http://php.net/json_decode) s'attend à ce que l'entrée soit codée en UTF-8, est-ce le cas? – Gumbo

Répondre

0

Il devrait fonctionner avec l'utilisation & il fonctionne pour moi si ..., mais j'ai eu des problèmes dans le passé avec des piqûres qui ne reconnaissaient pas certains caractères spéciaux, la solution dans ce cas était de faire en sorte que le l'encodage de document de fichier php a été mis à utf8. Un autre problème que j'ai eu dans le passé était avec sorcière XMLReader n'a pas accepté une plaine simple fonctionne à la place & mais & très bien pour que vous puissiez les opérations suivantes:

json_decode(preg_replace('/&/','&','{"text":"test & test"}')); 

P.S. Je suppose que vous essayez de décoder une chaîne json plus grande afin que le problème puisse provenir d'une partie différente de la chaîne, avez-vous exécuté le test exact que vous avez posté dans la question et il est retourné null?

Questions connexes