3

我正在使用资源包来读取基于语言环境的属性文件。(Lang_en_US.properties,..)

resourcebundle 被读取为 iso-8859-1(标准?)。

ResourceBundle rb= ResourceBundle.getBundle("Lang", locale);

然后在整个 Spring/JSF Web 应用程序中使用资源包来生成前端文本。

<h:outputText value="#{msg['message.example']}" />

但我相信这无关紧要,因为调试表明在调用 rb getMessage 之后文本已经是乱码。

// returns gibberish:
log.trace(rb.getMessage("l_SampleText"));
4

2 回答 2

1

我相信您假设资源包被读入为 iso-8859-1 是正确的。 Properties 类的 Javadoc ( source )

您确定您的属性文件保存在 iso-8859-1 格式下吗?我相信 Notepad++ 提供了至少检查编码的功能,如果不转换它。

于 2012-11-07T16:11:57.443 回答
0

由于您使用的 UTF-8 字符可能无法在 ISO-8859-1 中正确编码,因此您有 2 个选项

  1. 使用nativetoascii工具对包中的字符进行转义,以便正确读取所有字符

  2. 使用 Spring 的MessageSources 的bundle support,它支持 UTF-8 编码的文件

于 2012-11-07T16:47:24.013 回答