本文转载自:http://blog.csdn.net/wangyangbto/article/details/48804155

很多人都碰到过,SpringMVC使用 @ResponseBody 注解,返加字符串不做任何处理时,有可能会出现乱码问题。

这是由于 StringHttpMessageConverter 类中,默认采用的字符集是 ISO-8859-1。

public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String> {

   public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");

   private final Charset defaultCharset;

   private final List<Charset> availableCharsets;

   private boolean writeAcceptCharset = true;

   /**
* A default constructor that uses {@code "ISO-8859-1"} as the default charset.
* @see #StringHttpMessageConverter(Charset)
*/
public StringHttpMessageConverter() {
this(DEFAULT_CHARSET);
}

那么要解决乱码问题,需要改变 StringHttpMessageConverter 中的默认字符集,本文中以UTF-8为例。

修改默认字付集:

<bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8" index="0"/>
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
</list>
</property>
</bean>

配置起效

方式一:

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="stringHttpMessageConverter"/>
<ref bean="jackson2HttpMessageConverter"/>
</list>
</property>
</bean> <mvc:annotation-driven />

注:配置必须在 <mvc:annotation-driven /> 之前,否则将不会启效;<mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping 与AnnotationMethodHandlerAdapter。

方式二:

<mvc:annotation-driven>
<mvc:message-converters>
<ref bean="stringHttpMessageConverter"/>
<ref bean="jackson2HttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>

接下来的内容转载自:http://blog.csdn.net/flushest/article/details/52755785

spring mvc中没有直接使用默认配置,而是另外配置了json解析器

 <!-- 返回json  需要导入 fastjson.jar包 -->
<mvc:annotation-driven>
<mvc:message-converters register-defaults="false">
<!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->
<bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<!-- 这里顺序不能反,一定先写text/html,不然ie下出现下载提示 -->
<value>text/html;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>

使用@responsebody注解并且返回值类型为String时,返回的string字符串带有双引号,其原因是直接将string类型转成了json字符串,应该在json解析器之前添加字符串解析器

<bean class="org.springframework.http.converter.StringHttpMessageConverter"/>

最新文章

  1. xcode 第三方插件遇到问题
  2. WinForm------给GridControl添加搜索功能
  3. SPI试验---verilog(实用单通模式)
  4. Oracle RAC环境的日志体系
  5. 自定义控件如何给特殊类型的属性添加默认值 z
  6. 问题解决:form表单的button按钮问题
  7. 跟踪对象属性值的修改, 设置断点(Break on property change)
  8. servlet实现简单的登录功能
  9. javascript模块化编程-立即执行函数(IIFE)
  10. 对比synchronized与java.util.concurrent.locks.Lock 的异同
  11. 虚拟机提示:无法打开内核设备“\\.\Global\vmx86”: 系统找不到指定的文件
  12. python——线程相关
  13. C#中使用WeiFenLuo.WinFormsUI.Docking.dll实现窗口停靠效果
  14. Visual Studio主题与配色方案
  15. POJ:3083 Children of the Candy Corn(bfs+dfs)
  16. LeetCode--198--打家劫舍
  17. 【Asp.net入门06】第一个ASP.NET 应用程序-案例说明
  18. java &amp; maven pom
  19. lr总结
  20. linux下如何配置TCP参数设置详解

热门文章

  1. 自己用java实现飞鸽传书 2 - 实现文件传输
  2. LeetCode第[36]题(Java):Valid Sudoku
  3. 绘制三角形(sass)
  4. CSS设置小技巧
  5. python学习笔记(生成xml)
  6. mysql中去除重复字段-distinct
  7. JT809 加密解密算法
  8. POJ 1062 限制点
  9. 转:大数据架构:flume-ng+Kafka+Storm+HDFS 实时系统组合
  10. 【scala】模式匹配