如何修改eclipse工作空間的字符集以及項目的字符集?
第一種方式:修改eclipse的配置文件
打開{ECLIPSE_HOME}/eclipse.ini文件
在最后一行加上屬性:
-Dfile.encoding=utf-8
第二種方式:手動設置
1.修改文件編碼
修改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。
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
拓展1:如何校驗eclipse創建的java文件的字符集?
第一步:新建一個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,不信?咱們繼續探索。
拓展2:查看java文件字符集顯示為utf-8,就說明它是以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來實現。