昨天,今天都碰到了get请求乱码问题,从网上找到了解决办法,以下是解决过程:
1、请求时url是这样的http://120.26.118.229:8080/bigevent/setup?page=1&title=%E5%A4%A7&preDate=&postDate= 而%E5%A4%A7正是大的utf-8编码E5A4A7
2、然后我调查我的项目的编码,在web配置中,发现有编码配置
<filter>
<filter-name>encodingFilter</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>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
指明了utf-8编码,但为什么对get没效果呢?因为该过滤器只是针对请求体编码,并未对请求的url编码。
3、如何配置url编码呢?只要在tomcat中的server.xml配置url编码即可
如:<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
问题解决!!!!