@responsebody 乱码问题
2016-09-27 14:44
99 查看
早上改了个东西,发现返回的json数据出现乱码问题,原因是:
spring mvc使用的默认处理字符串编码为ISO-8859-1,具体参考org.springframework.http.converter.StringHttpMessageConverter
类中public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");
百度的解决办法如下:
解决方法:
第一种:对于需要返回的字符串的方法加注解。如:
@SuppressWarnings("unchecked")
@ResponseBody
@RequestMapping(value="brand",produces = "application/json; charset=utf-8")
public Object brandList(HttpServletRequest request) {
Map<String,Object> map = new HashMap<String,Object>();
PageData pd=new PageData();
try {
//JSONObject json=this.getRequestInfo(request);
String nub=request.getParameter("number").toString();
if(null==nub || nub.equals("")){
map.put("message", "请检查参数");
return AppUtil.returnJson(pd, map);
}else{
String callback = request.getParameter("callback");
if(StringUtils.isNotBlank(callback)){
pd.put("callback", callback);
}
}
Integer number = Integer.parseInt(nub);
map = brandService.getBrandList(number);
} catch (Exception e) {
e.printStackTrace();
map.put("message", "服务器错误");
}
return AppUtil.returnJson(pd, map);
}
我使用了这种方法,此方法只针对单个方法调用起作用。
第二种方法:在application配置文件中加入如下:
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes" value = "text/plain;charset=UTF-8" />
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
我测试了一下,没用,当然有兴趣的可以去详细测试。
spring mvc使用的默认处理字符串编码为ISO-8859-1,具体参考org.springframework.http.converter.StringHttpMessageConverter
类中public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");
百度的解决办法如下:
解决方法:
第一种:对于需要返回的字符串的方法加注解。如:
@SuppressWarnings("unchecked")
@ResponseBody
@RequestMapping(value="brand",produces = "application/json; charset=utf-8")
public Object brandList(HttpServletRequest request) {
Map<String,Object> map = new HashMap<String,Object>();
PageData pd=new PageData();
try {
//JSONObject json=this.getRequestInfo(request);
String nub=request.getParameter("number").toString();
if(null==nub || nub.equals("")){
map.put("message", "请检查参数");
return AppUtil.returnJson(pd, map);
}else{
String callback = request.getParameter("callback");
if(StringUtils.isNotBlank(callback)){
pd.put("callback", callback);
}
}
Integer number = Integer.parseInt(nub);
map = brandService.getBrandList(number);
} catch (Exception e) {
e.printStackTrace();
map.put("message", "服务器错误");
}
return AppUtil.returnJson(pd, map);
}
我使用了这种方法,此方法只针对单个方法调用起作用。
第二种方法:在application配置文件中加入如下:
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes" value = "text/plain;charset=UTF-8" />
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
我测试了一下,没用,当然有兴趣的可以去详细测试。
相关文章推荐
- readResolve方法
- 解决Android Studio编译慢的一种优化方法
- JAVA EE---JSP 学习第一天
- 排序去重
- 详细代码实现 Button的监听事件的Onclick的三种方法
- Ubuntu14.04系统hostapd编译及使用
- 云盘搭建svn服务器
- 转发和重定向
- p4c-bm安装
- 数据链路层的协议分析
- shell变量
- Linux系统上的特殊权限SUID,SGID,STICKY以及额外权限管理工具facl命令
- 阅读郭林《第一行代码》的笔记——第10章 看看精彩的世界,使用网络技术
- git使用教程二 远程仓库操作
- vim 常用操作
- BZOJ 1483 [HNOI2009]梦幻布丁
- _weak typeof(self) weakSelf = self使用解释
- TakePhoto是一款用于在Android设备上获取照片(拍照或从相册、文件中选择)、裁剪图片、压缩图片的开源工具库,目前最新版本3.0.0。
- memmove 、 memcpy 的区别
- Mongodb启动命令mongod参数说明