Spring MVC @ResponseBody返回中文字符串乱码问题
2016-12-07 14:19
381 查看
引起乱码原因为spring mvc使用的默认处理字符串编码为ISO-8859-1,具体参考org.springframework.http.converter.StringHttpMessageConverter类中
public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");
解决方法:第一种方法:
对于需要返回字符串的方法添加注解,如下:
@RequestMapping(value="/getUsers", produces = "application/json; charset=utf-8") public String getAllUser() throws JsonGenerationException, JsonMappingException, IOException { List<User> users = userService.getAll(); ObjectMapper om = new ObjectMapper(); System.out.println(om.writeValueAsString(users)); DataGrid dg = new DataGrid(); dg.setData(users); return om.writeValueAsString(dg); }
此方法只针对单个调用方法起作用。
第二种方法:
在配置文件中加入
<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>
参考:http://stackoverflow.com/questions/3616359/who-sets-response-content-type-in-spring-mvc-responsebody
相关文章推荐
- 微服务框架Spring Cloud介绍 Part2: Spring Cloud与微服务
- 分享微信开发Html5轻游戏中的几个坑
- springmvc实现url路由功能
- spring aop 无法代理父类方法 的解决方法
- Spring MVC过滤器-超类 GenericFilterBean
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring和ThreadLocal
- Spring Boot 开发微服务
- Spring AOP动态代理-切面
- 使用MVC微信支付返回get_brand_wcpay_request:fail
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- Orace查询数据出现乱码的问题解决思路
- oracle em 按钮乱码解决办法及em网页变成英文
- C#读取中文文件出现乱码的解决方法
- mysql命令提示行连接乱码的解决
- 解决Java程序使用MySQL时返回参数为乱码的示例教程