0

在我的应用程序中,当我尝试使用“Maps Elevation API”获取海拔高度时,我得到一个看起来像中文答案的答案。我的要求是: 我的要求

使用以下代码查询 API 返回的结果:

            try {
            url = new URL(arg0[0]);
            urlConnection = (HttpURLConnection)url.openConnection();
            try {
                urlConnection.setRequestMethod("POST");
                urlConnection.setDoInput(true);
                urlConnection.setDoOutput(true);
                os=urlConnection.getOutputStream();
                bw=new BufferedWriter(new OutputStreamWriter(os,"UTF_16"));
                bw.flush();
                bw.close();
                is = urlConnection.getInputStream();
                br = new BufferedReader(new InputStreamReader(is, "UTF_16"));
                while ((ligneRéponse = br.readLine()) != null) {
                    if(ligneRéponse.length()!=0) {e
                        if (ligneRéponse.contains("<elevation>")) {
                            if (ligneRéponse.contains("<elevation>")) {
                                altitude = Double.parseDouble(ligneRéponse.substring(ligneRéponse.indexOf("<elevation>") + 11, ligneRéponse.indexOf("</elevation>")));
                            } else {
                                altitude = -10000;
                            }
                        }
                    }
                }
                is.close();
            } finally {
                urlConnection.disconnect();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        return(altitude);

直到最近,这段代码运行良好。现在,我在ligneRéponse变量中得到的结果如下所示:㰿硭氠症牳楯渽∱⸰∠敮捯摩涌㴢啔䘭㠢㼾਼䕬敶预防楯湒敳灯湳放ਠ㱳瑡瑵猛攻佋㰯獴预防畳㸊‼牥猎汴㸊†㱬潣预防楯ਠ†㱬汬预防捡㸴㔮㠱ㄲ㠰㜼⽬预防㸊†‼汮朾㌮〱㠴㘹㔼⽬涌㸊†㯰汯莹莹潮㸊†㱥潮㸸〳⸶㌶㜱㰯敬敶预防楯ਠ‼牥獯汵潮㸱㤮〸㜹〴〼〼⽲敳潬放惊楯浑ਠ㰯牥猎汴㸊㰯䕠敶楯灯湒敳敳湳

如果我直接从我的网络浏览器启动我的请求,结果会以英文正确书写,就像以前一样......

有谁知道我如何在我的应用程序中获得可以理解的答案?

4

1 回答 1

0

答案来自 UTF-8,但您试图将其解释为 UTF-16。

于 2020-06-06T09:20:10.493 回答