通过Resourcebundle编码问题读取属性文件

时间:2012-11-07 16:06:31

标签: java character-encoding

我正在使用resourcebundle来根据语言环境读取属性文件。 (Lang_en_US.properties,..)

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

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

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

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

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

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

2 个答案:

答案 0 :(得分:1)

我认为你假设资源包以iso-8859-1读入是正确的。 Javadoc of Properties classsource

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

答案 1 :(得分:0)

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

  1. 使用nativetoascii工具转义捆绑中的字符,以便正确读取所有字符

  2. 使用Spring的MessageSources's捆绑支持,支持UTF-8编码的文件