1.Tomcat配置文件修改
loggin.properteis
(apache-tomcat-8.5.97\conf目录,大概50行)
修改java.util.logging.ConsoleHandler.encoding = GBK
主要是由于Windows的控制台默认GBK编码与Tomcat默认UTF-8编码不一致
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = GBK
server.xml
(apache-tomcat-8.5.97\conf目录,大概70行)
添加URIEncoding=“UTF-8”
<Connector port="8084" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443"
maxParameterCount="1000" URIEncoding="UTF-8"
relaxedPathChars="|{}[],%" relaxedQueryChars="|{}[],%"
/>
这两个配置
relaxedPathChars="|{}[],%" relaxedQueryChars="|{}[],%"
是解决在高版本的tomcat中无法识别前端提交的字符,如 [ ] { } 之类的问题
如果遇到报错"java.lang.IllegalArgumentException: 在请求目标中找到无效字符。
有效字符在RFC 7230和RFC 3986中定义",可以添加这两个配置解决
web.xml
(apache-tomcat-8.5.97\conf目录,大概115行)
添加fileEncoding为UTF-8这一段
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<!--添加UTF-8配置-->
<init-param>
<param-name>fileEncoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
如果还有问题,可以尝试修改bin/catalina.bat
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MaxPermSize=1024m -Dfile.encoding=UTF-8
2.IDEA相关配置修改
设置–编辑器–文件编码–全局编码修改
Tomcat服务配置虚拟机选项
添加-Dfile.encoding=UTF-8
大部分乱码问题可以解决掉