Java Bing地图REST服务返回不正确的法语字符。有没有办法要求他们对自己的反应进行编码或解码?

Java Bing地图REST服务返回不正确的法语字符。有没有办法要求他们对自己的反应进行编码或解码?,java,android,web,bing,decoding,Java,Android,Web,Bing,Decoding,在我编写的Android应用程序中,有一部分允许用户输入旅行的开始和结束位置,并返回路线。我正在为此使用Bing地图REST服务。我希望返回的方向是法语 请求示例:。这最好在Chrome浏览器上看到,Safari和Firefox会处理好这一点。你可以看到方向图上有很多奇怪的字符,而这些字符本不应该出现。我已尝试在设备上解码,方法是: urldecker.decode(obj.optString(“文本”),HTTP.ISO_8859_1) 这不起作用(反应保持不变),我认为这是有道理的,因为它已

在我编写的Android应用程序中,有一部分允许用户输入旅行的开始和结束位置,并返回路线。我正在为此使用Bing地图REST服务。我希望返回的方向是法语

请求示例:。这最好在Chrome浏览器上看到,Safari和Firefox会处理好这一点。你可以看到方向图上有很多奇怪的字符,而这些字符本不应该出现。我已尝试在设备上解码,方法是:

urldecker.decode(obj.optString(“文本”),HTTP.ISO_8859_1)

这不起作用(反应保持不变),我认为这是有道理的,因为它已经成为特殊角色。我无法使用Windows-1252进行解码,因为Android似乎不支持这一点

我被送回的一个例子:
LÃger Encombrement
。应该是什么:
Léger Enombrement

它在iPhone上也能很好地工作,但在Android上不行。关于我如何解决这个问题有什么建议吗

我在connection类中的代码是:

public static JSONObject getJSONResult(final String url) {

    try {
        final HttpClient client = new DefaultHttpClient();
        final HttpGet get = new HttpGet(url);
        final HttpResponse responsePost = client.execute(get);
        final HttpEntity resEntity = responsePost.getEntity();

        boolean DEBUG = true;
        if (DEBUG) {
            Log.d("", "[JSON-ENV] url:  " + url);
        }

        final String str = EntityUtils.toString(resEntity);
        Log.d("connection", "response str: " + str);

        if (resEntity != null) {
            final JSONObject obj = new JSONObject(str);
            Log.d("connection", "JSON RESPONSE IS " + obj);
            return obj;

        } else {
            return null;
        }

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

}
有什么我需要添加到我的连接类吗

更新:


我添加了JSON解析代码,格式为“ISO_8859_1”,如本文所示:但我仍然得到相同的结果

这是JSON。您不需要使用URL解码器。错误发生在这之前,可能是在为JSON解析器创建字符串时。JSON总是使用UTF-8(或16,很少使用)

您可以发布读取服务器响应的代码吗

编辑 EntityUtils使用ISO_8859_1作为默认字符集(如果在内容中找不到)。简单地改变

final String str = EntityUtils.toString(resEntity);

final String str = EntityUtils.toString(resEntity, HTTP.UTF_8);