如何在Java中处理多种语言?


问题内容

我正在使用jsp和java编写程序,如何使用属性文件支持多种语言?顺便说一句,总是有\ u4345之类的东西,这是什么?他们怎么来的?


问题答案:

对于多种语言,请签出ResourceBundle类。

关于\u4345,这是Java黑暗而令人讨厌的遗留角落之一。属性文件必须使用ASCII,因此所有非ASCII字符都需要编码为\uxxxx(其Unicode值)。您可以使用native2ascii命令行工具将文件转换为使用此编码。如果使用的是IDE或构建工具,则应该有一个选项可以自动调用它。

如果属性文件完全由您自己控制,则可以从Java6开始也直接在属性文件中使用UTF-8(或任何其他字符集),并在加载时指定该编码

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

同样,这仅在您自己加载属性时才起作用,而不是由其他人(例如ResourceBundle(用于国际化))来加载。