利用Eclipse編輯中文資源文件

   既然生爲中國人,就沒有什麼好抱怨的了,遇到編碼的問題,那只有解決它了。
  
   如果經常使用Struts,並做過國際化操作的人來說,對於中文資源文件的處理應該不會感到陌生的。比如下面兩個文件,一個是英文的,一個是中文的。對於英文的,一切照常;對於中文的,一般需要用JDK的native2ascii工具進行轉換,
 
application_en.properties
# Resources for the Hello sample application

hello.title=A first Struts program
hello.prompt.user=Please enter a UserName
hello.page.hello=Hello
hello.page.wellocome=Wellcome to Blog of Javamxj
 
 
 
application_zh_CN.properties
# Hello實例使用的資源文件

hello.title=第一個Struts應用
hello.prompt.user=請輸入用戶名
hello.page.hello=你好
hello.page.wellocome=歡迎來到Javamxj的Blog
 
 
   我當前使用的Eclipse版本是3.1M6,如果使用Eclipse編輯application_zh_CN.properties文件,保存後,關閉這個文件,然後再次打開它,會發現這個文件中的中文字符都變成了????
 
  爲什麼會發生這種情況呢?在中文操作系統下,Eclipse中的Java類型文件的編碼的默認設置是GBK,但是對Properties資源文件的編碼的默認設置是ISO-8859-1。所以編輯Java文件中的中文不會出現問題,但編輯Properties資源文件中的中文會出現問題。
 
   在3.1M6版本下,我們可以直接修改Properties資源文件的默認編碼了(Eclipse3.0版本好像不支持)。在Eclipse主界面下,打開 Window ->Perferences ->General ->Editors ->Context Types:
 
   修改爲GBK後,再次打開application_zh_CN.properties文件,編輯後保存,再打開時,文件中的中文字符可以正常顯示了。
 
   這還不行,還必須利用native2ascii來轉換一下。
native2ascii-本地碼-至-ASCII 碼轉換器
 
將含有本地編碼字符(既非 Latin1 又非 Unicode 字符)的文件轉換爲 Unicode 編碼字符的文件。 

結構
native2ascii [options] [inputfile [outputfile]]

說明
Java 編譯器和其它 Java 工具只能處理含有 Latin-1 和/或 Unicode 編碼(/udddd 記號)字符的文件。native2ascii 將含有其它字符編碼的文件轉換成含 Latin-1 和/或 Unicode 編碼字符的文件。 

若省略 outputfile,則使用標準輸出設備輸出。此外,如果也省略 inputfile,則使用標準輸入設備輸入。 


選項
-reverse 
執行相反的操作:將含 Latin-1 和/或 Unicode 編碼字符的文件轉換成含本地編碼字符的文件: 

-encoding encoding_name 
指定轉換過程使用的編碼名稱。缺省的編碼從系統屬性 file.encoding 中得到。encoding_name 字符串必須是符合要求的字符串。
 
 
比如可以這樣利用native2ascii:
native2ascii -encoding gbk application_zh_CN.properties  temp.properties
  這裏將根據application_zh_CN.properties輸出了一個臨時文件temp.properties,然後把application_zh_CN.properties中的文件內容替換爲這個臨時文件的內容就可以了。
 
轉換後的application_zh_CN.properties 
# Hello/u5b9e/u4f8b/u4f7f/u7528/u7684/u8d44/u6e90/u6587/u4ef6
 
hello.title=/u7b2c/u4e00/u4e2aStruts/u5e94/u7528
hello.prompt.user=/u8bf7/u8f93/u5165/u7528/u6237/u540d
hello.page.hello=/u4f60/u597d
hello.page.wellocome=/u6b22/u8fce/u6765/u5230Javamxj/u7684Blog
 
 
  這樣的操作對於一個或兩個資源文件還行,如果多個資源文件,這樣未免有些太麻煩了。你可以建立一個批處理文件(.bat);或者建立一個Ant文件,利用其包含的native2ascii任務,也可以進行批處理。
 
 
  還是覺得麻煩!!!
 
 
 

 
 
 
  但是自從使用Eclipse後,好處多多,在Eclipse下,有這麼兩個插件,可以用來處理資源文件,它們使用起來各有千秋。
 
   
 
JInto 0.8.0
 
 
仔細看看文檔,它提供的功能還是很不錯的。 
 
 
 
Properties Editor
它提供了三個版本,單獨運行的版本、Eclipse版本、JBuilder版本,這裏只看看Eclipse3下的版本
 
 
 分別以links方式安裝這兩個插件,啓動Eclipse,切換到Perferences,如圖:
· JInto插件
 
· Properties Editor插件
 
 
 
· 先利用Properties Editor插件編輯資源文件,選中application_zh_CN.properties,右擊,選擇對應的插件,如圖操作:
 
  
· Properties Editor插件編輯的效果
 
 
· 然後利用JInto插件編輯資源文件:
 
 
 
 附帶說說XML文件
 
   對應XML文件類型,默認的編碼是UTF-8,但如果在xml聲明中可以指定其編碼,如“<?xml version="1.0"  encoding="GBK"?>”就指定其編碼爲GBK。這樣,Eclipse在讀取xml文件時,會首先根據其聲明來設置這個文件的編碼,如果在聲明中沒有指定其編碼,那麼會採用UTF-8編碼來讀取這個文件。所以對於xml文件,就不需要強制設置其默認的編碼類型了。
 
   真不知道Sun是怎麼搞的,對於資源文件的編碼能搞得這麼複雜,如果能像XML文件那樣從內容識別其編碼多好啊,等吧,等到Sun CEO換成了中國人吧。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章