第一種方式:修改eclipse的配置文件java
打開{ECLIPSE_HOME}/eclipse.ini文件web
在最後一行加上屬性:sql
-Dfile.encoding=utf-8
第二種方式:手動設置eclipse
1.修改文件編碼jsp
修改Java Class File的編碼集工具
Window-->General-->Content Types-->Java Class File-->Default encoding-->UTF-8-->Update(utf-8大小寫無所謂)開發工具
修改其它類型文件的字符集(CSS,HTML,JS,JAVA,XML等)測試
注意:設置Text時,CSS,HTML,JS,JAVA,XML等文件的編碼集都會被修改成UTF-8,可是,jsp文件仍是採用的iso-8859-1。編碼
須要手動修改爲utf-8,再點擊Update。spa
2.更改eclipse的工做空間
Window-->General-->Workspace-->Text file encoding-->Other-->UTF-8-->Apply
3.檢查Web目錄下Files文件的編碼集
CSS Files,HTML Files,JSP Files的字符集是否已是utf-8,若是不是,記得更改。
4.檢查XML目錄下Files文件的編碼集
至此,eclipse文件的字符集已經徹底被設置爲utf-8了。
5.修改項目的字符集
選中項目--》右鍵--》Properties--》Resource--》-->Text file encoding-->Other-->UTF-8-->Apply
第一步:新建一個Test.java類。
public class Test { public static void main(String[] args) { String str = "這裏必須用中文才能測試出來當前java文件的字符集!"; System.out.println(str); System.out.println("JVM採用的怎樣的字符集解析class文件:" + Charset.defaultCharset().name()); } }
第二步:查看該文件所在的磁盤位置,並複製
選中該類--》右鍵--》Properties--》Location顯示的就是該類所在的本地路徑,複製該路徑
第三步:打開cmd命令窗口
win+r--》輸入:cmd--》肯定
命令進入到該目錄下
輸入:d:--》回車進入到d盤根目錄下--》cd D:\workspace-eclipse\yyproject\src\dzkjk\web\tools
第四步:使用java命令進行編譯
輸入:javac Test.java--》回車,查看執行結果。
說明:
要想在cmd下執行java命令,首先須要配置環境變量;
若是編譯報錯信息爲:編碼GBK的不可映射字符,則證實Test.java文件的編碼集爲UTF-8,不然,若是可以成功編譯,則證實該文件的字符集爲GBK。
測試的類只有用中文,測試測出來該類的字符集,由於:在脫離了eclipse後,不管java文件的編譯仍是運行都是有操做系統的語言決定的。
另外,你可能會說,在第二步中,直接右鍵屬性,就能看到當前java類的字符集了。
這,沒毛病,可是咱們沒辦法這樣就下結論說:該文件的字符集就是utf-8,不信?我們繼續探索。
咱們在notepad++裏測試一下。
第一步:打開notepad++,新建一個文件,並將上述的代碼複製到該文件中
第二步:保存文件
將該文件保存到桌面,文件名爲Test.java
第三步:將文件字符集設置爲utf-8無BOM格式編碼
進行保存。
第三步: cmd切換到桌面目錄。
第四步:編譯該文件
接下來就會發現有趣的事情:
若是,漢字你是從eclipse中複製過來的,編譯報錯信息一致。
可是,若是你是經過notepad++,進行過修改,且內容爲中文。
你會發現:測試這兩個字,在編譯的時候沒有報錯。
咱們把最後一行代碼刪掉,結果:編譯成功。
桌面,也生成了Test.class文件。
咱們使用java反編譯文件,打開看看什麼狀況。
怎麼樣?亂碼!!!
這說明什麼?
第一,當java文件的字符集設置成utf-8後,在eclipse下進行開發,能夠保證該文件裏的內容就是utf-8,毋庸置疑;
第二,當java文件的字符集設置成utf-8後,在notepad++下進行開發,涉及到中文的地方,中文的字符集還是GBK,而不是utf-8;
第三,當java文件的字符集設置成utf-8後,經過查看java文件的字符集的方式,並不能證實該文件就是utf-8編碼格式;
第四,java反編譯工具會自動解析class文件的字符集,而後以該文件的字符集解析文件內容。
第五步,還原java代碼,從新編譯。
剛纔忘了導包,如今加上。
編譯的時候,告訴java,該文件的字符集是多少。
javac -encoding utf-8 Test.java
編譯成功。
-encoding 字符集,就是告訴javac.exe在執行編譯命令時,以utf-8的格式進行編譯。
(前面已經提到:脫離eclipse執行的java操做,在沒有明確指明的狀況下,不管java文件的編譯仍是運行都是由操做系統的語言決定的,Windows語言是GBK)
第六步,查看生成的class文件。
中文展現沒有亂碼,完美。
這也告訴咱們,能用開發工具進行開發的時候,儘可能藉助eclipse來實現。