关于responseBody注解中文乱码的问题解决

Posted 陈扬天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于responseBody注解中文乱码的问题解决相关的知识,希望对你有一定的参考价值。

在web.xml中定义字符集过滤器:

<filter>
        <filter-name>SpringEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>SpringEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

如果这样仍然不起作用,则需要在spring-mvc.xml中配置如下bean:

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" >  
    <property name="messageConverters">  
        <list>  
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />  
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">  
                <property name="supportedMediaTypes">  
                    <list>  
                        <value>text/plain;charset=utf-8</value>  
                        <value>text/html;charset=UTF-8</value>  
                    </list>  
                </property>  
            </bean>  
        </list>  
    </property>  
</bean> 

值得一提的是,@ResponseBody注解是通过在spring-mvc.xml中配置的 <mvc:annotation-driven></mvc:annotation-driven>来启用的,所以上述bean必须写在 <mvc:annotation-driven></mvc:annotation-driven>的前边,否则是不起作用的。

以上是关于关于responseBody注解中文乱码的问题解决的主要内容,如果未能解决你的问题,请参考以下文章

解决spring-mvc @responseBody注解返回json 乱码问题

spring 3.0 @ResponseBody注解返回中文问号乱码解决办法

关于springmvc 使用注解@responsebody 显示到浏览器出现乱码的问题

Spring MVC @ResponseBody注解返回值中文乱码问题

《经久不衰的Spring框架:@ResponseBody 中文乱码》(转)

使用@ResponseBody注解返回字符串乱码