Java项目彻底解决中文乱码问题

spring自带的编码过滤器,在web.xml中配置,如下

Java项目彻底解决中文乱码问题

spring org.springframework.web.filter下的CharacterEncodingFilter.java编码过滤器源码:

Java项目彻底解决中文乱码问题

发现其源码相当于servlet里的

request.setCharacterEncoding("UTF-8")

respsose.setCharacterEncoding("UTF-8")

因此spring的自带的过滤器只是针对于post请求的,get请求还是无法过滤为中文编码.

解决get乱码方法一般是数据还原:

Java项目彻底解决中文乱码问题

但是这种方法必须每个get请求都需要取修改,不方便,因为tomcat默认编码是'iso8859-1',因此我们可以修改tomcat的配置文件更改tomcat的字符编码修改

二. Tomcat字符编码修改

    发开conf下面的server.xml,修改代码

[html] view plain copy
  1. <Connector port="8080" protocol="HTTP/1.1"  
  2.                connectionTimeout="20000"  
  3.                redirectPort="8443" />  
修改之后,代码如下:
[html] view plain copy
  1. <Connector port="8080" protocol="HTTP/1.1"  
  2.                connectionTimeout="20000"  
  3.                redirectPort="8443"   
  4.                URIEncoding="UTF-8"  
  5.                useBodyEncodingForURI="true"  
  6.                />  

这样tomcat对于get请求默认编码就变成了Utf-8了.

总结:这样就能彻底解决项目中的中文乱码问题了,对于Get请求的中文参数,不能在后台进行数据还原,数据会乱码