記錄一個打包可執行jar在log4j2控制台輸出中文亂碼的問題


問題描述:

1、在idea中輸出正常,無亂碼

2、打包可執行jar,在控制台中使用java命令運行,寫入數據庫存在中文亂碼。

3、執行jar時加入-Dfile.encoding=utf-8 即 java -Dfile.encoding=utf-8 -jar XXX.jar,數據庫寫入正常,控制台log日志中文亂碼,system.out.println輸出中文正常。

解決思路:

1、修改log4j配置文件,將控制台輸出標記為utf-8


結果:失敗!!!

2、看了一些解決方案,將charset改為gbk,放到winows中運行。中文不亂碼了!但是同一個項目的web部分放到linux中運行輸出又亂碼,這不是最終解決方案。

3、通過上面兩部,基本確定了問題所在:windows命令行窗口默認是gbk編碼,可食用chcp查看。


所以追其原因,是windows命令行編碼與log4j2不一致。為了讓log4j保持utf-8,應對放在linux中的項目輸出中文正常,可調整windows命令行編碼。及在運行jar之前,先運行命令:chcp 65001,將命令行編碼修改為utf-8,再執行jar文件,可以將整個命令寫到批處理bat中,方便執行。

 

via:https://blog.csdn.net/lhrm0213/article/details/104664734


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM