Wie behandeln die Akzent-Zeichen (z.B. é im Wort République), die von den Google-Map-server als Antwort in Android

Möchte ich die Anzeige der Antwort, die aus dem Google-Map-Server. Die Antwort, die ich bekomme, ist der name einer Lage, dass ich immer nach dem senden der breiten-und Längengrad auf der Google-Map-server und die Antwort kommt wie diese "av de la République", aber wenn ich diese Anzeige in der App nach dem Parsen der Antwort, die immer angezeigt als "av de la RÃ(c)publique"....

Das code-snippet unten könnte beim verstehen helfen, mein problem..

public static String getAddress(double lat, double lon){
        StringBuilder stringBuilder = new StringBuilder();
         String add ="";

       try {

        HttpPost httppost = new HttpPost("http://maps.googleapis.com/maps/api/geocode/json?latlng="+lat+","+lon+"&sensor=false");
        HttpClient client = new DefaultHttpClient();
        org.apache.http.HttpResponse response;
        stringBuilder = new StringBuilder();

            response = client.execute(httppost);
            HttpEntity entity = response.getEntity();
            InputStream stream = entity.getContent();
            int b;
            while ((b = stream.read()) != -1) {
                stringBuilder.append((char) b);
            }
        } catch (ClientProtocolException e) {
        } catch (IOException e) {
        }

        JSONObject jsonObject = new JSONObject();
        try {
            jsonObject = new JSONObject(stringBuilder.toString());
        } catch (JSONException e) {
            //TODO Auto-generated catch block
            e.printStackTrace();
        }

       try {
          add = ((JSONArray)jsonObject.get("results")).getJSONObject(0)
               .getString("formatted_address");
       } catch (Exception e) {
           e.printStackTrace();
       }
       return add;
    }

Dies ist meine Umsetzung von dem code

public static String getAddress(double lat, double lon){
        StringBuilder stringBuilder = new StringBuilder();
         String add ="";
        try {

        HttpPost httppost = new HttpPost("http://maps.googleapis.com/maps/api/geocode/json?latlng="+lat+","+lon+"&sensor=false");
        HttpClient client = new DefaultHttpClient();
        org.apache.http.HttpResponse response;
        stringBuilder = new StringBuilder();


            response = client.execute(httppost);
            HttpEntity entity = response.getEntity();

            char[] buffer = new char[2048];
            Reader reader = new InputStreamReader(entity.getContent(), "UTF-8");
            while (true) {
                int n = reader.read(buffer);
                if (n < 0) {
                    break;
                }
                stringBuilder.append(buffer, 0, n);
            }
        } catch (ClientProtocolException e) {
        } catch (IOException e) {
        }

        JSONObject jsonObject = new JSONObject();
        try {
            Log.i("===================", stringBuilder.toString());
            jsonObject = new JSONObject(stringBuilder.toString());
        } catch (JSONException e) {
            //TODO Auto-generated catch block
            e.printStackTrace();
        }


       try {

          add = ((JSONArray)jsonObject.get("results")).getJSONObject(0)
               .getString("formatted_address");

       } catch (Exception e) {
           e.printStackTrace();

       }

       return add;

    }
überprüfen Sie diese Antwort: stackoverflow.com/a/7368354/180100

InformationsquelleAutor Gulrez | 2012-12-18

Schreibe einen Kommentar