如何彻底解决SpringMVC4.0下使用解决@ResponseBody 中文乱码问题
中文乱码这个问题很是头痛,解决post请求的乱码问题,我们也许只要设置编码过滤器,解决get请求时的中文乱码问题,我们可以采取 new String(“接收的字符串”.getbyte("ISO-8859-1"),“utf-8”)解决(这个比较麻烦,对每个待接收数据都要这样转一下,效率太低,不推荐)还可以通过修改tomcat的配置,我们找到tomcat的安装路径下面的conf文件夹,
在conf文件夹里面找到server.xml文件,打开文件,找到相同的代码“
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />”
在里面加入“URIEncoding="UTF-8" 就可以解决get请求方式的乱码;今晚进行项目开发的时候,又遇到一种乱码,就是我使用ajax异步请求数据,使用springmvc 的@ResponseBody 方式返回json数据,出现中文乱码,找了很多解决方法,都不行,有点郁闷了,最后还是皇天不负有心人啊,还是解决了,这里就献上解决的方法了。
在spring mvc的配置文件里面加入如下一段代码就Ok!
<!-- 用于使用@ResponseBody后返回中文避免乱码 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<bean id="stringHttpMessageConverter"
class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="writeAcceptCharset" value="false" />
<!-- 用于避免响应头过大 -->
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
</list>
</property>
</bean>