我正在编写一个使用jsp和java的程序, 我如何使用属性文件来支持多种语言? 顺便说一句,总有像\ u4345这样的东西, 这是什么 ?他们是怎么来的?
答案 0 :(得分:14)
对于多种语言,请查看ResourceBundle课程。
关于\u4345
,这是Java的一个黑暗且非常烦人的传统角落。属性文件需要为ASCII,因此所有非ASCII字符都需要编码为\uxxxx
(其Unicode值)。您可以转换文件以将此编码与native2ascii command line tool一起使用。
如果您使用的是IDE或构建工具,则应该有一个选项可以自动调用它。
如果属性文件是您可以完全控制自己的属性,则可以从Java6开始直接在属性文件中使用UTF-8(或任何其他字符集),并在加载时使用specify that encoding:
// new in Java6
props.load(new InputStreamReader(new FileInputStream(file), 'UTF-8'));
同样,这仅适用于您自己加载属性,而不是其他人加载属性,例如ResourceBundle(用于国际化)。
答案 1 :(得分:4)
http://java.sun.com/docs/books/tutorial/i18n/index.html
上有一整个教程这指明并解释了您需要知道的任何事情。
答案 2 :(得分:1)
彼得已经提到了i18n上的Java tutorial。如果您正在构建JSP,您可能希望查看JSTL,它基本上允许您通过JSP标记使用ResourceBundle的功能。