使用java.util.Properties从属性文件中读取重音字符串



我正在尝试使用java.utils.Propertiesconstants.properties文件读取属性。只是,其中一些属性包含重音字符,如é、è、ô,当我使用getProperty()读取它们时,重音将被删除。即:

Générateur de formulaire

成为

Generateur de formulaire

我知道属性文件是用ISO 8859-1编码读取的,所以我已经尝试过切换unicode转义的字符:

FORM_GENERATOR_VALUE=Générateur de formulaires

成为

FORM_GENERATOR_VALUE=Gu0065nu0065rateur de formulaires

然而,这仍然给出了相同的结果。当我停止执行并查看变量时,我用getProperty()从文件中读取的字符串仍然没有重音符号。

以下是如何初始化我的属性:

public Properties constants = new Properties();
constants.load(new FileInputStream("constants.properties"));

我已经看到一种解决方案是将属性文件格式从.property切换到.xml,但理想情况下我不想这样做,因为这意味着要再次重写整个常量文件。

我在使用法语字符时遇到了重音问题,所以我使用了下面的代码段。在读取.properties文件时,我们需要传递字符集。

this.properties.load(new InputStreamReader( getClass().getClassLoader().getResourceAsStream("configuration.properties"), 
Charset.forName("UTF-8")));

u0065e,而不是é(即u00E9(。

因此,一旦设置了正确的unicode转义,它就会被正确读取。

最新更新