我正在尝试使用java.utils.Properties
从constants.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")));
u0065
是e
,而不是é
(即u00E9
(。
因此,一旦设置了正确的unicode转义,它就会被正确读取。