Android UTF-8西里尔语请求

时间:2015-09-08 21:09:44

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

在我的应用程序中,我从服务器请求数据以在用户个人资料视图中显示它。 应用程序读取JSON数据,解析它并粘贴到表单的字段中。 charset和app读取西里尔字符串没有问题。

我尝试更新个人资料时遇到问题:

JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, "http://meWebSite.com/userProfile.php?act=edit"
            +"&user_id="+user_id+
            "&country="+country_1.getText().toString()+
            "&city="+city_1.getText().toString(),
            new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            parceEditingJsonRequest(response);
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
        }
    });

在这种情况下,所有西里尔字符串看起来像?????

我打印了请求字符串并将其粘贴到浏览器 - 一切正常 - 西里尔字符串已正确提交给服务器,因此我认为问题不在服务器端。

我真的不知道从哪里开始。也许我应该为这个请求指定charset?

1 个答案:

答案 0 :(得分:1)

看看URLEncoder,即:

JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, "http://meWebSite.com/userProfile.php?act=edit"
            +"&user_id="+URLEncoder.encode(user_id, "UTF-8")+
            "&country="+URLEncoder.encode(country_1.getText().toString(), "UTF-8")+
            "&city="+URLEncoder.encode(city_1.getText().toString(), "UTF-8"),

然后,如果您需要,在服务器端,如果您使用的是php,则可以使用utf8_encodeutf8_decode