问题产生原因
1.服务端没有设置编码格式
2.Volley对于没有指定编码格式的请求默认将其转化为”ISO-8859-1”
解决办法
将返回的格式转化为UTF-8即可
String newResponse =new String(response.getBytes("ISO-8859-1"),"UTF-8"); `
示例代码如下
RequestQueue queue = Volley.newRequestQueue(this);
StringRequest string = new StringRequest(Request.Method.GET, "http://www.baidu.com", new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
//将数据转码为UTF-8//解决中文乱码问题
String newResponse = new String(response.getBytes("ISO-8859-1"),"UTF-8");
Log.e("response", newResponse);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("error",error.toString());
}
});
queue.add(string);