Spring MVC中文乱码

这里讲的中文乱码主要正对于@ResponseBody这个导致的中文乱码,之前一直没发现,因为返回JSON的时候中文没有乱码,但是返回XML或者包含中文的的字符串都会乱码,中文变成问号。

这是因为返回的时候编码为ISO-8859-1,所以导致乱码,解决办法:

<mvc:annotation-driven>
    <mvc:message-converters>
        <bean class="org.springframework.http.converter.StringHttpMessageConverter">
            <constructor-arg value="UTF-8" />
            <property name="writeAcceptCharset" value="false" />
        </bean>
    </mvc:message-converters>
</mvc:annotation-driven>

加上上面的配置即可,另外还有一种就是在配置mapping的时候,设置返回的内容格式:

@RequestMapping(method = RequestMethod.POST, produces = "plain/text; charset=UTF-8")

不过这个比较繁琐。

参考文章:
http://blog.csdn.net/wuxinzaiyu/article/details/8813974
http://tedeum.iteye.com/blog/1913500
http://jejoker.iteye.com/blog/1973565