IntelliJ IDEA 控制台中文亂碼


1. 預熱

剛剛接觸IntelliJ IDEA幾天,在易用性方面的確比Eclipse好很多,比較智能,各種插件、工具都已經集成,和Mac OS X類似——開箱即用。

但是還是老大難問題——中文亂碼,讓我不得不花費了一些時間去折騰它,這一點就不如Eclipse了,沒有遇到過亂碼問題。

亂碼問題表現在使用Web Server(Tomcat、Jetty)時輸出日志或者直接System.out.println("中文字符")時會出現,如果僅僅執行類的main函數沒有問題。
2. 環境

我針對亂碼問題在不同的環境下進行了測試:
2.1. 系統語言:英文

我一直的習慣把系統語言設置為英文(強迫性記憶),這是第一次遇到亂碼問題,分析了程序執行參數如下:

ps -ef | grep java

執行后得到如下的結果,省略了classpath:

/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -d64 -Djava.awt.headless=true -Xmx512m -Dfile.encoding=MacRoman -classpath … org.jetbrains.idea.maven.server.RemoteMavenServer

分析參數和編碼有關的只有一個:

-Dfile.encoding=MacRoman 

2.2. 系統語言:中文

先說明一下如果系統語言設置為中文是沒有亂碼問題的,所以網上大量的重復文章的辦法是把"File Encoding"設置為GBK或者GB2312,但是很多系統的編碼不可能因為一個IDE而更改編碼,所以這種辦法直接無視!!!

切換到中文語言后分析執行參數,和英文語言下不同的是:

-Dfile.encoding=GB2312

3. 解決辦法

相信看完了分析已經知道如何解決問題了,因為MacRoman編碼不包含中文所以會出現亂碼,而設置系統語言為中文的時候系統默認設置為GB2312編碼,所以編碼問題自然就沒有了。
3.1. 步驟一

和項目編碼統一,更改IntelliJ IDEA啟動時的編碼參數即可,打開下面的配置文件:

/Applications/IntelliJ IDEA 12.app/Contents/Info.plist

在IntelliJ IDEA 12.app文件右鍵選擇“Show Contents”即可看到Contents目錄。

找到key等於VMOptions位置,這里設置的虛擬機的參數,在后面追加下面的參數保存文件。

-Dfile.encoding=UTF-8

    PS:從12.1版本開始默認添加了這個參數

3.2. 步驟二

不要以為問題解決了,實際上只完成了一半,因為是運行Web Server時出現的亂碼,所以Web Server的編碼要和IDEA保持一致:

IDEA中設置Web Server的虛擬機編碼

這樣IDE的編碼(控制台編碼受IDE影響)和Web Server輸出的編碼一致問題解決。

啟動Web Server之后再分析JVM的參數可以看到 -Dfile.encoding=UTF-8。

 

windows下改intellij安裝目錄下bin\idea.exe.vmoptions文件

 

如果以上中文還是亂碼的問題:需要將原先的中文字符重新輸一遍。

 

轉自:http://www.kafeitu.me/tools/2013/03/26/intellij-deal-chinese-disorderly-code.html

如果是編輯器亂碼的話 

 

一、進入設置頁。File-->Settings (快捷鍵:Ctrl+Alt+S)

二、進入IDE Settings,在File Encoding 中 的 Default encoding 改為 GB2312。

 -Dfile.encoding=UTF-8

 

idea 要設置

 


免責聲明!

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



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