Intellij IDEA開發時遇到的中文亂碼問題
參考大神文章 : 解決Intellij IDEA控制台,logger.info(),system.out.println()等中文亂碼問題(最完美篇)_heweiwei520的博客-CSDN博客_idea控制台亂碼
造成中文亂碼的根本原因是 開發工具和系統環境編碼格式不匹配
一 : 編寫環境亂碼(必要)
首先是編譯器語言 file -> settings ->Appearance(外觀) -> theme(主題設置) -> use custom font
(最好不設置采用默認語言,或選擇如下圖能支持中文的語言,避免出現中文亂碼)
設置工程項目編碼 file -> settings -> Editor -> File Encodings-> 如下圖
二 : 控制台打印亂碼 (兩種方案選一個)
1.方案一
解決方案 :
用Notepad++打開Tomcat安裝源碼conf
文件夾下的logging.properties
文件。
修改這五個 UTF-8
為GBK
即可
( 其實只用修改 java.util.logging.ConsoleHandler.encoding = GBK,其它4個可以不修改,效果一樣,保險起見全部修改了。)
打開Intellij IDEA,亂碼問題解決, 再次單獨啟動tomcat發現亂碼也得到解決
2.方案二
打開Intellij idea安裝目錄,在bin目錄下的idea.exe.vmoptions和idea64.exe.vmoptions兩個文件結尾添加
-Dfile.encoding=UTF-8
(注意不要出現空格)
接着再修改idea配置Help ->Edit Custom VM Options , 在最后面添加:-Dfile.encoding=utf-8
重啟IDEA開發工具(一定要重啟),再啟動工程,亂碼問題解決。
總結
方案二 只解決IDEA下tomcat啟動控制台亂碼,沒法像方案一能把tomcat命令控制台亂碼一起解決。
log4j的logger.info()控制台打印亂碼 和 system.out.println()控制台打印亂碼
采用(方案一)會出現logger.info()打印中文亂碼,system.out.println()打印中文正常
采用(方案二)會出現logger.info()打印中文正常,system.out.println()打印中文亂碼
記住: (方案一)和(方案二)不能同時設置,
推薦(方案二)+ 配置Tomcat VM options值為:-Dfile.encoding=UTF-8(解決system.out.println()亂碼問題)達到我們目的。
最終補充: 如果已經按照前面設置都沒問題,但是仍然還是亂碼,怎么解決?,這個時候只有一種解釋:IDEA把你的字體編碼弄錯了,怎么解決了?
在項目的目錄下有個.idea的文件夾,這個文件夾里有個encodings.xml的文件。里面記錄了你某些文件對應的特殊編碼,只要把encodings.xml里面的除了UTF-8的都刪了或者把encodings.xml文件刪除(會重新生成)