平常的開發中,我們通常會用到日志列印進行開發,而常常開發中,通常用到的是 Log4j 來控制日志資訊,進而把日志資訊列印在控制台。
小編平時使用 idea(2019.1版) 開發項目,經常用内置的 tomcat 伺服器,日志列印并沒有出現過亂碼現象,今天在使用外部 tomcat 作為伺服器進行一個demo時,進行日志列印,發生離奇的日志中文亂碼現象。如下亂碼現象:
要列印的日志資訊:

請求位址時,控制台輸出日志:
發現日志資訊亂碼,上網度娘,很多方法就是在運作配置上加上 VM options 加上:-Dfile.encoding=UTF-8。
原本以為問題可以解決,但設定後,再重新運作項目,一看控制台資訊,頓時一首“涼涼”送給了自己。
小編再次上網查找資料,發現,也可以配置 idea bin目錄下的idea64.exe.vmoptions(64位系統,32位配置idea.exe.vmoptions),在檔案末尾添加:-Dfile.encoding=UTF-8,重新開機 idea,可以解決日志列印亂碼問題,如下:
本以為可以解決的,但運作後,項目列印日志資訊還是亂碼,網上的解決方法基本都是這些了,隻能胡亂嘗試一通,因為之前小編把在項目運作配置的VM options 的屬性值-Dfile.encoding=UTF-8删除了,是以小編又在運作配置VM options 加上
-Dfile.encoding=UTF-8,再次運作項目,這次看控制台的日志資訊:
日志列印資訊不再亂碼了。至于什麼原因,小編目前也不清楚,有知道何解的大神,也可以評論告知小編。
總結今次解決日志亂碼問題:
- 配置idea檔案(idea安裝目錄的bin目錄下):64位系統配置idea64.exe.vmoptions,32位配置idea.exe.vmoptions,在檔案内容末尾添加:-Dfile.encoding=UTF-8。儲存後重新啟動idea(必須重新開機idea);
- 在項目運作配置屬性VM options,屬性值為:-Dfile.encoding=UTF-8。
以上兩個方法,缺一不可,這次經驗純屬小編意外解決的,不知能否給大家幫助,如能同樣解決你的問題,請為小編點贊!