在我的应用程序中,我从服务器请求数据以在用户个人资料视图中显示它。 应用程序读取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?
答案 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_encode或utf8_decode。