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即可。