既然生為中國人,就沒有什么好抱怨的了,遇到編碼的問題,那只有解決它了。
如果經(jīng)常使用Struts,并做過國際化操作的人來說,對(duì)于中文資源文件的處理應(yīng)該不會(huì)感到陌生的。比如下面兩個(gè)文件,一個(gè)是英文的,一個(gè)是中文的。對(duì)于英文的,一切照常;對(duì)于中文的,一般需要用JDK的native2ascii工具進(jìn)行轉(zhuǎn)換,
我當(dāng)前使用的Eclipse版本是3.1M6,如果使用Eclipse編輯application_zh_CN.properties文件,保存后,關(guān)閉這個(gè)文件,然后再次打開它,會(huì)發(fā)現(xiàn)這個(gè)文件中的中文字符都變成了????。
為什么會(huì)發(fā)生這種情況呢?在中文操作系統(tǒng)下,Eclipse中的Java類型文件的編碼的默認(rèn)設(shè)置是GBK,但是對(duì)Properties資源文件的編碼的默認(rèn)設(shè)置是ISO-8859-1。所以編輯Java文件中的中文不會(huì)出現(xiàn)問題,但編輯Properties資源文件中的中文會(huì)出現(xiàn)問題。
在3.1M6版本下,我們可以直接修改Properties資源文件的默認(rèn)編碼了(Eclipse3.0版本好像不支持)。在Eclipse主界面下,打開 Window ->Perferences ->General ->Editors ->Context Types:
![]() 修改為GBK后,再次打開application_zh_CN.properties文件,編輯后保存,再打開時(shí),文件中的中文字符可以正常顯示了。
這還不行,還必須利用native2ascii來轉(zhuǎn)換一下。
比如可以這樣利用native2ascii:
native2ascii -encoding gbk application_zh_CN.properties temp.properties
這里將根據(jù)application_zh_CN.properties輸出了一個(gè)臨時(shí)文件temp.properties,然后把a(bǔ)pplication_zh_CN.properties中的文件內(nèi)容替換為這個(gè)臨時(shí)文件的內(nèi)容就可以了。
這樣的操作對(duì)于一個(gè)或兩個(gè)資源文件還行,如果多個(gè)資源文件,這樣未免有些太麻煩了。你可以建立一個(gè)批處理文件(.bat);或者建立一個(gè)Ant文件,利用其包含的native2ascii任務(wù),也可以進(jìn)行批處理。
還是覺得麻煩!?。?/DIV>
但是自從使用Eclipse后,好處多多,在Eclipse下,有這么兩個(gè)插件,可以用來處理資源文件,它們使用起來各有千秋。 JInto 0.8.0
仔細(xì)看看文檔,它提供的功能還是很不錯(cuò)的。
Properties Editor
它提供了三個(gè)版本,單獨(dú)運(yùn)行的版本、Eclipse版本、JBuilder版本,這里只看看Eclipse3下的版本
分別以links方式安裝這兩個(gè)插件,啟動(dòng)Eclipse,切換到Perferences,如圖:
· JInto插件
![]() · Properties Editor插件
![]() · 先利用Properties Editor插件編輯資源文件,選中application_zh_CN.properties,右擊,選擇對(duì)應(yīng)的插件,如圖操作:
![]() · Properties Editor插件編輯的效果
![]() · 然后利用JInto插件編輯資源文件:
![]() 附帶說說XML文件
對(duì)應(yīng)XML文件類型,默認(rèn)的編碼是UTF-8,但如果在xml聲明中可以指定其編碼,如“”就指定其編碼為GBK。這樣,Eclipse在讀取xml文件時(shí),會(huì)首先根據(jù)其聲明來設(shè)置這個(gè)文件的編碼,如果在聲明中沒有指定其編碼,那么會(huì)采用UTF-8編碼來讀取這個(gè)文件。所以對(duì)于xml文件,就不需要強(qiáng)制設(shè)置其默認(rèn)的編碼類型了。
真不知道Sun是怎么搞的,對(duì)于資源文件的編碼能搞得這么復(fù)雜,如果能像XML文件那樣從內(nèi)容識(shí)別其編碼多好啊,等吧,等到Sun CEO換成了中國人吧。 |
|