使用Volley JsonObjectRequest API编码不正确 - UTF-8

时间:2015-11-01 15:31:05

标签: android json encoding utf-8 android-volley

我的API(nodejs)和我的Android客户端之间有关于编码的问题。

Android排球请求:

JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.GET, tmpUrl, null, new Response.Listener<JSONObject>() {
                        @Override
                        public void onResponse(JSONObject response) {
                            Log.e("TEST", "" + response.toString());
                        }
                    },
                    new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            error.printStackTrace();
                        }
                    }
            );
queue.add(jsObjRequest);

我的GET请求标题:

content-type → application/json; charset=utf-8

测试日志:

TEST: {"announces":[{"_id":"56360bca8c9356a3289788aa","title":"marché", ....

普通标题应为“marché”,但它不起作用..

问题出在哪里? API或Android客户端?我在不同的项目中使用了这个凌空库,一切正常......

1 个答案:

答案 0 :(得分:1)

两者都不一定是错的,它们只是不匹配。 您的客户端假设结果的编码是UTF-8,但显然不是。

所以,你有两个选择 - 强制nodejs返回UTF-8,或者找出它返回的编码,并在Android端使用它。