android 开发笔记 使用Volley框架获取json数据出现中文乱码解决方案
2017-04-27 09:07
896 查看
如果在服务器的返回数据的header中没有指定字符集那么就会默认使用 ISO-8859-1 字符集。
ISO-8859-1的别名叫做Latin1。这个字符集支持部分是用于欧洲的语言,不支持中文~
很不能理解为什么将这个字符集作为默认的字符集。Volley这个框架可是要用在网络通信的环境中的。
吐槽也没有用,我们来看一下如何来解决中文乱码的问题。有以下几种解决方式:
在服务器的返回的数据的header的中contentType加上charset=UTF-8的声明。
当你无法修改服务器程序的时候,可以定义一个新的子类。覆盖parseNetworkResponse这个方法,直接使用UTF-8对服务器的返回数据进行转码。
下面是POST提交 有参数情况:
下面是默认get提交:
ISO-8859-1的别名叫做Latin1。这个字符集支持部分是用于欧洲的语言,不支持中文~
很不能理解为什么将这个字符集作为默认的字符集。Volley这个框架可是要用在网络通信的环境中的。
吐槽也没有用,我们来看一下如何来解决中文乱码的问题。有以下几种解决方式:
在服务器的返回的数据的header的中contentType加上charset=UTF-8的声明。
当你无法修改服务器程序的时候,可以定义一个新的子类。覆盖parseNetworkResponse这个方法,直接使用UTF-8对服务器的返回数据进行转码。
下面是POST提交 有参数情况:
StringRequest req = new StringRequest(Request.Method.POST, path, listener, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { Log.i(TAG, "onErrorResponse: " + volleyError.getMessage()); } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { return map; } protected Response<String> parseNetworkResponse(NetworkResponse response) { String json; try { json = new String(response.data, "GB2312"); return Response.success(json, HttpHeaderParser.parseCacheHeaders(response)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); return Response.error(new ParseError(e)); } } }; queue.add(req);
下面是默认get提交:
StringRequest req = new StringRequest(path, listener, errorListener) { protected Response<String> parseNetworkResponse(NetworkResponse response) { String json; try { json = new String(response.data, "GB2312"); return Response.success(json, HttpHeaderParser.parseCacheHeaders(response)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); return Response.error(new ParseError(e)); } } }; queue.add(req);
相关文章推荐
- 使用volley请求数据,Gson解析json的时候出现中文乱码问题
- volley获取json数据及中文乱码问题的解决
- SSM框架:解决后台传数据到前台中文乱码问题,使用@ResponseBody返回json 中文乱码
- 使用Kettle抽取数据时,出现中文乱码问题解决方案
- volley获取json数据及中文乱码问题的解决
- android开发案例之使用JSON数据向服务器提交和获取服务器传递的Json数据
- php获取数据库中数据生成json,中文乱码问题的解决方案
- android开发案例之使用JSON数据向服务器提交和获取服务器传递的Json数据
- PHP获取客户端数据保存到MySQL数据库 出现中文乱码解决方案
- 关于客户端与服务器ajax使用json数据交互,出现中文乱码或因包含html标答而报错的问题(base64加密)
- android开发案例之使用JSON数据向服务器提交和获取服务器传递的Json数据
- android开发案例之使用JSON数据向服务器提交和获取服务器传递的Json数据
- Android Volley 框架JSON中文乱码问题的解决
- HttpClient使用HttpGet获取Json数据出现部分数据乱码的情况
- 关于Android使用HttpURLConnection传输含有中文JSON数据的报错、乱码问题
- Android实战:使用Volley框架访问服务器Json数据
- 使用Kettle抽取数据时,出现中文乱码问题解决方案
- Android开发,使用Volley框架进行简单数据交互
- 使用myeclipse插入数据到mysql 出现中文乱码|utf8乱码解决方案[适合tomcat部署的jsp应用]
- android开发案例之使用JSON数据向服务器提交和获取服务器传递的Json数据