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
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
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;
merci
Partager