我们在Android开发中经常会用到Volley这个类,这个类我觉得最大的好处就是我们不能担心线程的问题,但是却是经常会遇到乱码的问题,Volley里面默认编码为Latin1,不是utf-8,这时我们需要重写parseNetworkResponse这个方法
public class CharsetStringRequest extends StringRequest {
public CharsetStringRequest(int method, String url,
Response.Listener<String> listener, Response.ErrorListener errorListener) {
super(method, url, listener, errorListener);
// TODO Auto-generated constructor stub
}
@Override
protected Response<String> parseNetworkResponse(NetworkResponse response) {
String parsed = null;
try {
parsed = new String(response.data,
"utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return Response.success(parsed,
HttpHeaderParser.parseCacheHeaders(response));
}
}
后面的开发中,如果我们需要用到StringRequest,直接用我们重写的这个类就好,这样中文乱码问题完美解决。