关于Tomcat服务器接收到的请求参数乱码的问题

我们在编写的Controller 等服务器端的代码时,接受到的请求参数经常会乱码。

解决:在Tomcat 的安装目录下找到conf 文件夹下的server.xml文件用记事本打开。

找到

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="30000"
               redirectPort="8443"  />

添加上URIEncoding="UTF-8"

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="30000"
               redirectPort="8443" URIEncoding="UTF-8" />

在把eclipse中的Server 工程中的server.xml文件中的上述代码也改一遍。就可以了。

<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

但是需要注意的是,这个只对GET请求起作用,对于form表单的没有起作用。

后续如果发现对form表单起作用的方法在添加上来

=======================更新========================================

表单的提交乱码解决的方法:在web.xml文件中的配置Spring 自带的过滤器 org.springframework.web.filter.CharacterEncodingFilter

但是需要注意的是:这个filter 放的位置非常重要,放的顺序不一样则会的起不到作用,目前发现要尽量靠前放置,但是要放在 <listener> 的后面。后续如果又发现再更新

     <filter>
        <filter-name>characterEncodingFilter</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>
        
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
原文地址:https://www.cnblogs.com/GooPolaris/p/7919735.html