SpringMVC中jsp向后台controller传中文乱码

当content-type是"application/x-www-form-urlencoded; charset=utf-8"时,spring会自动设置request.setCharacterEncoding("UTF-8"),我用ajax方式提交的数据都是这样的content-type,没有乱码。但是form标签不能指定charset,spring默认设置的是Latin-1,所以会有乱码。虽然我在拦截器中已经setCharacterEncoding("UTF-8"),但是spring已经在这之前把浏览器发过的utf-8编码转成了Latin-1。


解决办法:

在web.xml中添加如下配置:
<!--乱码过滤器-->
<filter>
    <filter-name>CharacterEncodingFilter</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>
</filter>
<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

猜你喜欢

转载自blog.csdn.net/FJJ543/article/details/80958088