一、在 web.xml 添加字符过滤器
<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>
<init-param>
<!--是否强制设置request的编码为encoding,默认false,不建议更改-->
<param-name>forceRequestEncoding</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<!--是否强制设置response的编码为encoding,建议设置为true-->
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
注意: 一定要注意该过滤器需要放在其他过滤器之前,不然还是会乱码。还有<url-pattern>/*</url-pattern> 的 /* 不可以写成 /
如果添加过滤器后还是不可以,可以尝试一下下面的第二个操作。
二、修改 Tomcat 的 server.xml 文件
server.xml 的目录 Tomcat\apache-tomcat-8.5.24\conf\server.xml
在下面这行代码中加上 URIEncoding="UTF-8"
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>