J'ai un script php qui fait cela:JSON: Charset et obtenir la clé/valeur
$rows = array();
while($r = mysql_fetch_assoc($sth2)) {
$rows[] = array($r['alternative'] => $r['amount']);
}
print json_encode($rows);
Je reçois cette sortie:
[{"\u00e5l":"3"},{"vin":"3"},{"whiskey":"1"},{"gin":"1"},{"rom":"1"},{"vodka":"1"}]
Problème un: \ u00e5 est censé être ø. Tout le reste fonctionne avec utf8 sauf cette fonction même, aucune idée de comment résoudre ce problème?
Le deuxième problème est que je n'arrive pas à lire les données en javascript. Je suis actuellement en utilisant ce code (je sais de pas bon, mais il devrait fonctionner pour l'instant):
$.each(obj, function(key, val)
{
counter = counter +1 ;
switch (counter)
{
case 0:
numberOne = key;
valueOne = val;
break;
case 1:
numberTwo = key;
valueTwo = val;
break;
case 2:
numberThree = key;
valueThree = val;
break;
case 3:
numberFour = key;
valueFour = val;
break;
case 4:
numberFive = key;
valueFive = val;
break;
case 5:
numberSix = key;
valuesix = val;
break;
}
});
Etes-vous sûr que vous obtenez des données codées UTF-8 à partir de votre base de données? [Gestion du recto-verso Unicode dans une application Web] (http://kunststube.net/frontback/) – deceze
J'utilise la même base de données pour générer un sondage avec les mêmes valeurs, et il imprime très bien. Cependant, je n'utilise pas JSON pour cela. Je l'ai résolu en faisant mysql_set_charset ("utf8"); dans mon fichier php-connecteur. Ces chiffres sont utilisés pour faire un wordcloud des réponses du sondage. – Tom
@Tom Ensuite, vous utiliserez probablement des données codées latin1 sur votre site, alors que json_encode et JSON en général attendent explicitement UTF-8. – deceze