Volley使用之对服务传回的中文数据进行字符转码
2015-11-13 22:24
429 查看
我刚开始接触volley的时候,遇到了中文字符显示不正常的情况。原因在于,对于抓取到的网页,我没有进行转码。
请看,这是我抓到的一个网页其中一部分:请看红色箭头
![](http://img.blog.csdn.net/20151113222654148?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
它已经定义了字符编码是bg2312,所以,在用volley得到这个网页的时候,先要进行转码。
需要覆盖一个方法:
在
将其设置网页对应指定的格式即可。
请看,这是我抓到的一个网页其中一部分:请看红色箭头
它已经定义了字符编码是bg2312,所以,在用volley得到这个网页的时候,先要进行转码。
需要覆盖一个方法:
protected Response<String> parseNetworkResponse(NetworkResponse response)
private void VolleyGETCredit() { String url = "http://xky.guet.edu.cn/student/Credit.asp"; RequestQueue queue = Volley.newRequestQueue(getActivity()); StringRequest request= new StringRequest(Request.Method.GET, url, new Response.Listener<String>() { @Override public void onResponse(String response) { LoadHTML(response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { System.out.println("获取失败"); } }){ @Override protected Response<String> parseNetworkResponse(NetworkResponse response) { String parsed; try { parsed = new String(response.data, "GBK"); } catch (UnsupportedEncodingException e) { parsed = new String(response.data); } return Response.success(parsed, HttpHeaderParser.parseCacheHeaders(response)); } }; request.setTag("GET"); queue.add(request); }
在
parsed = new String(response.data, "GBK");
将其设置网页对应指定的格式即可。
相关文章推荐
- zoj 1037 最短路
- 黑马程序员——Java基础IO流之File
- 工作计划小软件,凭什么估值千万?
- Python学习笔记004_字典_集合
- MATLAB和C/C++混合编程实现图像处理(一)
- MySQL-2 :MVCC及实现介绍
- [LeetCode29]Merge Sorted Array
- hdu 1754 I Hate It【线段树】 区间修改,最值查询
- MATLAB和C/C++混合编程实现图像处理(一)
- How to write a simple shell program
- Android打包签名(Keytool)
- 对单例模式的理解
- SQL Server 2005中的分区表(六):将已分区表转换成普通表
- 深入理解mysqldump原理 --single-transaction --lock-all-tables --master-data
- hadoop中各个名词的用途
- Android自定义控件之日历控件
- 【BZOJ 4300】绝世好题
- Java基础增强(二):注解
- (转)窗函数(window function)
- (解题报告)NOJ1094--蛇形填数1