2009-12-30 2 views
1

Quelqu'un peut-il me aider avec celui-ciremplacer EuroSign JSON

J'ai cette requête et seulement après avoir ajouté le dernier Wich est indexé sur l'euro je reçois JSON invalide.

$url = 'http://www.google.com/finance/info?client=ig&q=goog,yhoo,AMS:TOM2'; 
$response= json_decode($response,true); 

La seule chose différente si j'écoute directement la sortie est la question dans le json.

Que devrais-je utiliser pour remplacer l'eurosign dans le retour de json?, - et j'espère que cela va le résoudre.

grâce à adv, Richard

Répondre

2

Le JSON est valide ISO-8859-1 ou Latin1. Si votre application utilise un autre codage, par exemple UTF-8, vous devez convertir le codage de la réponse de Latin1 en UTF-8.

+0

Merci, et non, j'utilise le décodage. Je reçois la réponse de curl, je la dépouille des barres obliques au début et ensuite je la décode. Ensuite, je boucle les tableaux. Sauf quand j'ajoute le troisième stock, il renvoie null. Je vais essayer avec un stock américain pour essayer de cerner exactement le problème. – Richard

+0

cela a fonctionné utf8_encode ($ response) J'ai lu un peu plus les docs de json_decode et là j'ai vu ce que vous mentiez. Bien que j'aimerais savoir d'où viennent ces différences. Mais merci pour la solution. – Richard

1

json_encode et json_decode attendez que la sortie soit utf-8. Par défaut, PHP utilise iso-8859-1 comme charset. Donc vous devrez peut-être convertir. (Notez que le symbole de l'euro n'existe pas dans iso-8859-1).