为什么用Android Volley时返回的中文是乱码,而postman却显示正常
2015-11-16 16:38
483 查看
那是因为当服务器返回数据的header中没有设置charset=UTF-8的话,Volley会默认将数据传承ISO-8859-1,下面是源码:
StringRequest.java
protected Response<String> parseNetworkResponse(NetworkResponse response) { String parsed; try { parsed = new String(response.data, HttpHeaderParser.parseCharset(response.headers)); Log.e("-----JSON----", parsed); if(this.needCache && !parsed.equals(DataCache.getDataCache().queryCache(this.url))) { DataCache.getDataCache().saveToCache(this.url, parsed); } } catch (UnsupportedEncodingException var4) { parsed = new String(response.data); } return Response.success(parsed, HttpHeaderParser.parseCacheHeaders(response)); } HttpHeaderParser.java
public static String parseCharset(Map<String, String> headers) { String contentType = (String)headers.get("Content-Type"); if(contentType != null) { String[] params = contentType.split(";"); for(int i = 1; i < params.length; ++i) { String[] pair = params[i].trim().split("="); if(pair.length == 2 && pair[0].equals("charset")) { return pair[1]; } } } return "ISO-8859-1"; }
相关文章推荐
- 如何运行Smali文件?
- Android三级缓存
- Android自定义软键盘的实现
- Android Canvas绘图详解(图文)
- Android编程实现给Button添加图片和文字的方法
- Android实现对角线3D旋转
- android开发【可以进行四则运算的计算器】
- Android中利用Intent传递数据到另一个页面
- (转)android多国语言适配
- Android模拟聊天工具
- Android系统共享一套sdk
- Android(12)——上下文Context
- android 多语言适配
- 圆形头像显示实现
- Android shape的使用
- Android 侧滑菜单
- Android Studio 集成SVN
- Android ScrollView嵌套ListView/GridView 导致进入界面定位到ListView/GridView的问题
- Android下拉刷新
- 如何在android style文件中使用自定义属性