Problème des caractères spéciaux entre PHP et Java Android en utilisant Json encode
bonjour,
comme je site dans le titre j'ai un problème d'encodage des caractères accentué .
j'ai trouvé plusieurs solutions sur le web mais ça marche pas ou je sais pas comment les utilisé.
au début : Je récupère toutes les données en php de la base myssql et j'utilise la fonction json_encode pour renvoyé les données a l'application . C'est là que ça plante. tous les champs où il y a un caractères avec accents est remplacé par null.
les données sur la base provient soit d'un site web ( que je ne peux pas le modifier ) et il est codé en windows-1252 soi directement inséré avec wampPHP
pour ça j'ai trouvé une solution
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| $liste_amis = $bdd->query('SELECT * FROM lieux');
$nombre_amis=0;
while($myliste=$liste_amis->fetch()){
foreach($myliste as &$value)
{
$value = mb_convert_encoding($value, "UTF-8", "Windows-1252");
}
$output[]=array_map('utf8_encode', $myliste );
}
print(json_encode($output)); |
mais ça marche que pour les données inséré avec wampPHP en plus elle s'affiche comme ça "discothA~que"
et les restes des donné sont toujours null
dans mon code java j'utilise le BufferedReader
Code:
1 2 3 4 5 6 7 8 9 10 11
| try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8192);
// j'ai essayé aussi ça : new InputStreamReader(is, "iso-8859-1"), 8
StringBuilder sb = new StringBuilder();
String line = null;
int i = 0;
while ((line = reader.readLine()) != null) {
sb.append(line);
i++;
} |
aidé moi SVP