spring自带的编码过滤器,在web.xml中配置,如下
spring org.springframework.web.filter下的CharacterEncodingFilter.java编码过滤器源码:
发现其源码相当于servlet里的
request.setCharacterEncoding("UTF-8")
respsose.setCharacterEncoding("UTF-8")
因此spring的自带的过滤器只是针对于post请求的,get请求还是无法过滤为中文编码.
解决get乱码方法一般是数据还原:
但是这种方法必须每个get请求都需要取修改,不方便,因为tomcat默认编码是'iso8859-1',因此我们可以修改tomcat的配置文件更改tomcat的字符编码修改
二. Tomcat字符编码修改
发开conf下面的server.xml,修改代码
- <Connector port="8080" protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443" />
- <Connector port="8080" protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443"
- URIEncoding="UTF-8"
- useBodyEncodingForURI="true"
- />
这样tomcat对于get请求默认编码就变成了Utf-8了.
总结:这样就能彻底解决项目中的中文乱码问题了,对于Get请求的中文参数,不能在后台进行数据还原,数据会乱码