bonjour,
j'ai un problème de caractères accentués que je n'arrive pas à résoudre

j'ai un service web qui recupere des données en JSON via une base de données MySQL

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<?php  
include("../includes/connect_mysql.php");
$dblink=connect_mysql();
$sql = mysql_query("SELECT ....",$dblink);
while($row=mysql_fetch_assoc($sql))  
$output[]=$row; 
print(json_encode($output));  
mysql_close();  
?>

ensuite je récupére correctement les données pour les afficher dans mon appli android, mais dès que j'ai des mots avec des accents (é,è, etc.), j'obtiens la chaîne "null" à la place
j'ai essayé de faire utf8_encode($output) avant d'encoder en json, mais cela ne fonctionne pas ... je n'obtiens alors que {Array,Array,...} au lieu d'avoir une structure complète et donc cela ne m'affiche plus rien

quelqu'un a t il une idée ?

voici le code android

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
try{  
              HttpClient httpclient = new DefaultHttpClient();  
              HttpPost httppost = new HttpPost(strURL);  
              httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
              HttpResponse response = httpclient.execute(httppost);  
              HttpEntity entity = response.getEntity();  
              is = entity.getContent();  
            }catch(Exception e){  
              Log.e("log_tag", "Error in http connection " + e.toString());  
              }  
        // Conversion de la requête en string  
        try{  
              BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);  
              StringBuilder sb = new StringBuilder();  
              String line = null;  
              while ((line = reader.readLine()) != null) {  
              sb.append(line + "\n");  
              }  
              is.close();  
              result=sb.toString();  
            }catch(Exception e){  
              Log.e("log_tag", "Error converting result " + e.toString());  
              }  
             // Parse les données JSON  
         try{  
              JSONArray jArray = new JSONArray(result);  
              for(int i=0;i<jArray.length();i++){  
              JSONObject json_data = jArray.getJSONObject(i);  
              // Affichage ID_login et Nom_login 
             //Log.i("log_tag","Numéro de membre : "+json_data.getInt("NumMembre")+  
             //       ", Nom_login: "+json_data.getString("Login")  
              //      );  
          // Résultats de la requête  
           returnString += "\n\t" + jArray.getJSONObject(i); 
           returnString2 += "\n\t" + json_data.getString("Auteur");
           returnString2 += "," + json_data.getString("Titre");
           returnString2 += "," + json_data.getString("year");
           }  
              }catch(JSONException e){  
        Log.e("log_tag", "Error parsing data " + e.toString());  
             }
         //byte[] result2 = returnString2.getBytes("UTF-8"); 
		return returnString2;
j'ai aussi essayé de convertir au niveau d'android avec getBytes mais je pense que je maitrise mal cette technique, car elle ne fonctionne pas non plus

merci