我使用 Volley 库、StringRequest 类在客户端和服务器之间交换数据。我在服务器上的数据库记录保存在 UTF-8 字符集中。现在,当我想使用 StringRequest 获取记录时,它们的格式不正确!
我的代码:
StringRequest strReq = new StringRequest(Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
}
});
我能做些什么来解决这个问题?
最佳答案
您应该覆盖 parseNetworkResponse
方法,更改 response.data
字符集并返回它。下面有一个示例。
StringRequest request = new StringRequest(Method.GET, url,
new Listener<String>() {
@Override
public void onResponse(String response) {
}
}, new ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) {
@Override
protected Response<String> parseNetworkResponse(
NetworkResponse response) {
String strUTF8 = null;
try {
strUTF8 = new String(response.data, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return Response.success(strUTF8,
HttpHeaderParser.parseCacheHeaders(response));
}
};
关于android - 在 Android 应用程序和服务之间交换 unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26973256/