每日一得--springmvc的乱码解决

后端的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, 


Java代码   收藏代码
  1. <filter>    
  2.         <filter-name>encodingFilter</filter-name>    
  3.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>    
  4.         <init-param>    
  5.             <param-name>encoding</param-name>    
  6.             <param-value>UTF-8</param-value>    
  7.         </init-param>    
  8.         <init-param>    
  9.             <param-name>forceEncoding</param-name>    
  10.             <param-value>true</param-value>    
  11.         </init-param>    
  12.     </filter>    
  13.     
  14.     <filter-mapping>    
  15.         <filter-name>encodingFilter</filter-name>    
  16.         <url-pattern>/*</url-pattern>    
  17.     </filter-mapping>  
  18. </filter>  

来自:http://linvar.iteye.com/blog/1662232


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值