2011-11-26 73 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