Encoding HTML字符集与编码

Encoding HTML字符集与编码,encoding,localization,resourcebundle,Encoding,Localization,Resourcebundle,我需要构建一个将本地化为非拉丁语言的JSP应用程序。JSP页面包含从数据库(MySQL)检索一些显示元素的标记,以及从资源包(内容用Unicode编写的属性文件,我也尝试了UTF-8)检索其他显示元素的标记 我认为,问题在于,从资源包返回的字符串似乎将unicode/UTF-8代码点的每个字节放在自己的字符串中。例如/u0620在返回的字符串中占用两个字符,第一个字符为0x06,第二个字符为0x20。从资源包检索到的字符串的大小是原来的两倍 我的问题是在属性文件本身还是在resourceBund

我需要构建一个将本地化为非拉丁语言的JSP应用程序。JSP页面包含从数据库(MySQL)检索一些显示元素的标记,以及从资源包(内容用Unicode编写的属性文件,我也尝试了UTF-8)检索其他显示元素的标记

我认为,问题在于,从资源包返回的字符串似乎将unicode/UTF-8代码点的每个字节放在自己的字符串中。例如/u0620在返回的字符串中占用两个字符,第一个字符为0x06,第二个字符为0x20。从资源包检索到的字符串的大小是原来的两倍

我的问题是在属性文件本身还是在resourceBundle中


非常感谢您的帮助。

如果您使用UTF-8,那么UTF-8字符实际上是2个字节。编程语言是将其处理为两个字节还是一个字符对于实际代码来说并不重要

另外,避免使用UTF-16或其他形式的Unicode。UTF-8是当今唯一“正确”的做事方式


此外,正如b参数所指出的,您可能希望使用
pageEncoding=“utf-8”

是的,我知道。问题在于我的属性文件的编码。它必须是转义的unicode(/uxxx),而不是unicode字符。当我的属性文件中有纯unicode字符时,资源包将字符串中的字符加倍,每个字符包含unicode/UTF-8代码点的一半。但是,当我将文件更改为只有代表转义unicode/UTF-8代码点的ascii字符时,resourceBundle正确地读取了文件。