Tomcat日誌亂碼全解決方案
1.出現亂碼
最近一直在用Springboot
,很少再直接使用Tomcat啓動服務器,昨天接手了一個項目,當我需要在本地調試的時候,我首先去手動下載了一個Tomcat
,在IDEA中配置運行以後,打印日誌出現了亂碼的情況:
2.解決方案
方案一、 直接修改Tomcat日誌輸出字符集
看到這熟悉的中文字符亂碼,想都不用想,肯定是因爲坑爹的Windows
平臺上的GBK
編碼和輸出的UTF8
編碼的字符串出現了衝突,根據以往踩坑的經驗,我就直接找到了Tomcat
目錄下的配置文件夾:
看到了熟悉的logging配置文件,打開以後果不其然,日誌的輸出全部是UTF8
編碼,這裏需要給小夥伴普及一個知識,Windows
下的CMD
的默認字符集是GBK
,所以UTF8
編碼輸出的日誌,中文看到的肯定是亂碼了。
前面幾個都是文件日誌,我們不用關心,只需要修改最後一個輸出到console
的字符串編碼:java.util.logging.ConsoleHandler.encoding = GBK
重啓Tomcat
以後發現中文亂碼情況已經解決了。
方案二、 修改IDEA啓動VM參數字符集
這種方式是我在stackoverflow上看有大神的解決方案,不需要修改Tomcat日誌的編碼,直接修改IDEA
啓動時JVM
的參數,添加:
-Dfile.encoding=UTF-8
然後重啓IDEA
可以看到這樣也是能解決問題的,我推測是因爲IDEA
默認啓動的JVM
參數指定的是GBK,因此導致了控制檯也不能正常顯示UTF8
編碼的字符集,這樣修改以後就可以支持了。