get请求乱码

昨天,今天都碰到了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"/>

问题解决!!!!

猜你喜欢

转载自elisonwell.iteye.com/blog/2211228