背景:和PHP项目对接,出现乱码问题。
项目框架:springmvc
容器:tomcat
1.get处理方法
修改server.xml文件:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
改为
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
增加:
URIEncoding="UTF-8"
2.post处理方式,在web.xml添加:
<filter>
<filter-name>CharacterFilter</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>CharacterFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
犯傻的地方,在开始的时候是url-pattern里面的只是/ 不是 /* ,拦截不了请求,post请求一直为乱码,后台将/ 该为/*后,没出现乱码。
查询文档,这是springmvc的bug。/不拦截所有,/*才拦截。