2011-11-26 104 views
0

我需要構建一個將被本地化爲非拉丁語言的JSP應用程序。 JSP頁面包含標籤,用於從數據庫(MySQL)中檢索某些顯示元素,以及從資源包(其內容用Unicode編寫的屬性文件,我也嘗試使用UTF-8)檢索其他顯示元素。HTML字符集和編碼

我認爲,從資源包返回的字符串似乎將unicode/UTF-8代碼點的每個字節放在其自己的字符串字符中。例如/ u0620在返回的字符串中佔用兩個字符,第一個字符爲0x06,第二個字符爲0x20。從資源包中檢索的字符串的大小是雙倍的。

是我在屬性文件本身的問題還是它在resourceBundle?

任何幫助非常感謝。

+0

的pageEncoding =「UTF-8' – bmargulies

回答

0

如果使用UTF-8,那麼實際上一個UTF-8字符是2個字節。編程語言是將它處理爲兩個字節還是一個字符對於您的實際代碼而言不應該很重要。

另外,請避免使用UTF-16或其他形式的Unicode。現在,UTF-8是唯一的「正確」方式。

此外,作爲bmargulies指出的那樣,你可能需要使用pageEncoding="utf-8"

+0

是的,我知道。原來,這個問題是在編碼的我的屬性文件。它需要當我在我的屬性文件中有純Unicode字符時,資源包將我字符串中的字符加倍,每個字符持有unicode/UTF-8代碼點的一半。但是,當我將文件更改爲僅包含代表轉義的Unicode/UTF-8代碼點的ascii字符時,resourceBundle會正確讀取該文件。 – adaj21