spring mvc乱码的解决方案

        Spring中的字符集过滤器可以很方便的为我们解决项目中出现的中文乱码问题,而且使用方法也很简单,只需要在web.xml文件中配置一下该过滤器,设置两个重要的参数(encodingforceEncoding)即可:

[html] view plain copy
  1. <!-- 配置请求过滤器,编码格式设为UTF-8,避免中文乱码-->  
  2.     <filter>  
  3.        <filter-name>springUtf8Encoding</filter-name>  
  4.        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  5.        <init-param>  
  6.            <param-name>encoding</param-name>  
  7.            <param-value>UTF-8</param-value>  
  8.        </init-param>  
  9.        <init-param>  
  10.            <param-name>forceEncoding</param-name>  
  11.            <param-value>true</param-value>  
  12.        </init-param>   
  13.     </filter>  
  14.     <filter-mapping>  
  15.        <filter-name>springUtf8Encoding</filter-name>  
  16.        <url-pattern>/*</url-pattern>  
  17.    </filter-mapping> 
  • 今天用springMVC接收表单中文数据时总量乱码,按照网上的解决方案设置过滤器后,post的表单不乱码了,但get的表单还是会乱码。

解决get方法乱码的方案是修改tomcat的server.xml配置文件,修改<connector>如下,加入字符集编码:

Xml代码   收藏代码
  1. <Connector connectionTimeout="20000" port="8888" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>  

过滤器的代码如下:

Xml代码   收藏代码
  1. <!-- Character Encoding filter -->  
  2.     <filter>  
  3.         <filter-name>encodingFilter</filter-name>  
  4.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  5.         <init-param>  
  6.             <param-name>encoding</param-name>  
  7.             <param-value>UTF-8</param-value>  
  8.         </init-param>  
  9.         <init-param>  
  10.             <param-name>forceEncoding</param-name>  
  11.             <param-value>true</param-value>  
  12.         </init-param>  
  13.     </filter>  
  14.   
  15.     <filter-mapping>  
  16.         <filter-name>encodingFilter</filter-name>  
  17.         <url-pattern>/*</url-pattern>  
  18.     </filter-mapping>  
  • 以上这样可以解决几乎所有的总量(注意是“几乎”),一些get方法还是没办法解决,如
Html代码   收藏代码
  1. <a href="test.jsp?key=中文" />  

 这里有个更好的解决办法就是配置tomcat的server.xml文件

Xml代码   收藏代码
  1. <Connector connectionTimeout="20000" port="8888" protocol="HTTP/1.1" redirectPort="8443"  useBodyEncodingForURI="true"/> 

猜你喜欢

转载自zzc1684.iteye.com/blog/2124836