`
linvar
  • 浏览: 254372 次
  • 性别: Icon_minigender_1
  • 来自: 未定
社区版块
存档分类
最新评论

Springmvc 乱码问题

    博客分类:
  • java
阅读更多
后端的Tomcat server.xml里配置的<Connector URIEncoding="UTF-8" ...>编码设置,
只对请求的url进行utf8解码, 也就是能正常解析出get方法的参数.

但是对于Post方法, 因为参数是在请求体里面的, 这个编码设置并不会影响到Post的参数,
这个跟浏览器有关,
如果是firefox,会带上头信息:
content-type = application/x-www-form-urlencoded; charset=UTF-8
里面包含了请求体的编码信息(UTF-8),
所以Springmvc可以对post方法的参数正常解析出参数值.
但如果是chrome,则没有编码信息:
content-type = application/x-www-form-urlencoded
这时Springmvc采用默认的编码(ISO-8859-1)进行解析参数, 这时就会出现乱码问题.

解决的方式是加上spring的编码filter,


<filter>  
        <filter-name>encodingFilter</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>encodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>
</filter>
分享到:
评论
5 楼 zl544434558 2013-08-16  
最后一行</filter> 多余的
4 楼 imknown 2013-08-01  
方法有效,感谢博主!
3 楼 notafreak 2012-12-30  
方法有效,感谢博主
2 楼 linvar 2012-08-24  
ligangdufs 写道
  what about resin

resin.xml中的有一个<character-encoding>utf-8</character-encoding>
所以相当于resin自动帮我们做了filter的功能.
1 楼 ligangdufs 2012-08-24  
  what about resin

相关推荐

Global site tag (gtag.js) - Google Analytics