2007年2月18日 星期日

使用Big5編碼的Java properties

為了要實現可自由設定的字串訊息(也就是俗稱的i18n),我嘗試了一些方法。
最簡單的就是給每個locale一個index,而每個String都以String array的型態存在,利用locale的index找到相對應的字串。但是要這樣做,就必須定義一個存放此array的地方,我是用constant interface來儲存,但是這樣為免失之雜亂,因此我想到了利用properties來儲存各語系字串的方法。事實上這也是各大主流軟體的i18n設定技巧。

不過Java的properties輸入輸出介面並不是很友善,最原始的properties (entry = value)的型態只能允許ISO8859-1編碼,換句話說(abc = 中文)的形式輸入了java中只會得到一堆亂碼。因此JAVA製作了一個特別的XML格式,利用<entry="abc">中文</entry>來設定所有的property,且可利用xml宣告charset的特性保留文字編碼,使我們方便實現 利用不同encoding達到i18n的目的(而不需使用UTF-8等unicode系統),對於支援老舊編碼的protocol很有用。

沒有留言: