eclipse 設置所有文件編碼為UTF-8(最全)


如何修改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來實現。

 

寫在最后

  哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!

 相關推薦:

 


免責聲明!

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



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