tomcatHOME/config/logging.properties文件中有如下一行:
java.util.logging.ConsoleHandler.encoding = UTF-8
-
tomcat这样做的目的在于避免乱码,但在windows下并没有使用UTF-8,而是GBK,这就反而导致了乱码,将其改为GBK则可以避免windows环境下控制台输出乱码,但这仅限于server输出信息,如果想要避免Catalina log/Localhost log等等日志输出乱码还需要修改以下配置:
1catalina.org.apache.juli.FileHandler.encoding = GBK
2localhost.org.apache.juli.FileHandler.encoding = GBK
3manager.org.apache.juli.FileHandler.encoding = GBK
4host-manager.org.apache.juli.FileHandler.encoding = GBK
具体解释见下文:
乱码的根本原因:Windows系统的cmd是GBK编码的,所以IDEA的下方log输出的部分的编码也是GBK的,然而Tomcat 9.0 版本默认log输出是UTF-8编码的,采用了两种不同的编码方式就会导致乱码。
二、解决方案
方法1:修改Tomcat 日志输出为GBK编码(推荐使用这种方式)
先打开tomcat的安装目录
编辑 conf 目录下的 logging.properties
用notepad++ 打开,把里面的UTF-8 通通改成 GBK
保存,重启Tomcat,即可生效。
方法2:修改IDEA为UTF-8编码
首先打开 idea的安装目录
修改idea.exe.vmoptions和idea64.exe.vmoptions这两个文件
分别在这两个文件的最后,添加一行 -Dfile.encoding=UTF-8
这个参数的作用是强制系统文件使用UTF-8编码
idea.exe.vmoptions和idea64.exe.vmoptions这两个文件都要改
改完之后保存,重启IDEA即可。