android - 在 Android 应用程序和服务之间交换 unicode 字符

标签 android android-volley

我使用 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/

相关文章:

Android - 应用更新后闹钟丢失

android - 如何在 Volley 中从 JSONObject 获取字符串响应

java - 依次执行异步任务

java - 处理 Volley 中的错误(有 future )?

java - 我怎样才能用 android volley 获得响应 cookie

android - 为什么手机gps在不同的位置提供相同的坐标

Android:居中对齐 ImageButtons

android - 服务正在创建媒体播放器的新实例

android - 在 Volley 请求中使用 UTF-8 编码失败

java - RGB 到 HSV 转换