如何在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(用于国际化))来加载。