Json et encodage

Eléphanteau du PHP | 13 Messages

18 déc. 2007, 15:30

Bonjour,

Je tente d'utiliser la fonction json_encode(), mais j'ai des problème avec les caractères accentués:
<?php

	$var = "coucou héhé !!";
	echo json_encode();

?>
Mon code source du script est encodé en UTF-8, mon navigateur recoit bien des informations au format UTF-8,mais voici l'affichage:

Code : Tout sélectionner

"coucou h\u00e9h\u00e9 !!"
Ou est le problème ? Je ne met pas en cause la chaine de carractère puisque le code suivant marche très bien:
<?php

	$var = "coucou héhé !!";
	echo $var;

?>
Une idée ?

Mammouth du PHP | 1511 Messages

18 déc. 2007, 15:36

http://fr.php.net/manual/fr/function.json-encode.php
C'est pourtant marqué en toutes lettres :roll:
Cette fonction ne fonctionne qu'avec des données encodées UTF-8.
Fais un joli utf8_encode sur ta variable avant de la passer a json_encode ;)

ViPHP
ViPHP | 4039 Messages

18 déc. 2007, 15:57

Code : Tout sélectionner

"coucou h\u00e9h\u00e9 !!"
Qu'est-ce qui ne va pas ? c'est tout à fait normal ce résultat. Ta variable est encodée en unicode, (je crois) suite à son encodage en json.

Json_encode est utilisé pour transférer tes données à javascript. C'est pas fait pour être lu par des humains.. (JS le comprendra très très bien).

Moi, de problème, ben j'en vois pas..
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.