2009-08-13 54 views
5

我寫一個程序使用JSP和Java, 我怎樣才能使用屬性文件,支持多國語言? 順便說一下,總是有一些像\ u4345, 這是什麼?他們如何來?如何在java中處理多種語言?

+0

你使用什麼樣的框架?像struts,tapestry等大多數框架都支持i18n,所以你只需要檢查它們。 – nightingale2k1 2009-08-13 06:25:32

回答

14

對於多種語言,請查看ResourceBundle類。

關於\u4345,這是Java的黑暗和非常惱人的遺留角落之一。屬性文件需要使用ASCII碼,以便所有非ASCII字符需要編碼爲\uxxxx(它們的Unicode值)。您可以將文件轉換爲與native2ascii command line tool一起使用此編碼。 如果您使用的是IDE或構建工具,應該有一個選項可以自動調用它。

如果屬性文件是你必須在自己完全控制的東西,你可以從的Java6 specify that encoding開始也使用UTF-8(或其他任何字符集)直接在財產文件,當你加載:

// new in Java6 
props.load(new InputStreamReader(new FileInputStream(file), 'UTF-8')); 

同樣,這隻適用於您自己加載屬性的情況,而不是其他人的情況,例如ResourceBundle(用於國際化)。

+0

描述如何使用ResourceBundles的個人博客文章:http://tshikatshikaaa.blogspot.nl/2012/11/introduction-to-java-internationalization.html – JVerstry 2012-11-17 18:41:01

1

關於i18n的Java tutorial已經被Peter提到過。如果您正在構建JSP,您可能需要查看JSTL,它基本上允許您通過JSP標記使用ResourceBundle的功能。