使用 java.util.Properties 从属性文件中读取重音字符串
Using java.util.Properties to read accented strings from properties file
我正在尝试使用 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=G\u0065n\u0065rateur de formulaires
然而,这仍然给出相同的结果。当我停止执行并查看变量时,我使用 getProperty()
从文件中读取的字符串仍然没有重音符号。
这是我的属性的初始化方式:
public Properties constants = new Properties();
constants.load(new FileInputStream("constants.properties"));
我看到一种解决方案是将 属性 文件格式从 .property
切换到 .xml
但理想情况下我不想这样做,因为它会意味着再次重写我的整个常量文件。
\u0065
是 e
,而不是 é
(即 \u00E9
)。
所以一旦你设置了正确的 unicode 转义,它就会被正确读取。
我在使用法语字符时遇到口音问题,所以我使用了以下代码段。我们需要在读取 .properties 文件时传递字符集。
this.properties.load(new InputStreamReader( getClass().getClassLoader().getResourceAsStream("configuration.properties"),
Charset.forName("UTF-8")));
我正在尝试使用 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=G\u0065n\u0065rateur de formulaires
然而,这仍然给出相同的结果。当我停止执行并查看变量时,我使用 getProperty()
从文件中读取的字符串仍然没有重音符号。
这是我的属性的初始化方式:
public Properties constants = new Properties();
constants.load(new FileInputStream("constants.properties"));
我看到一种解决方案是将 属性 文件格式从 .property
切换到 .xml
但理想情况下我不想这样做,因为它会意味着再次重写我的整个常量文件。
\u0065
是 e
,而不是 é
(即 \u00E9
)。
所以一旦你设置了正确的 unicode 转义,它就会被正确读取。
我在使用法语字符时遇到口音问题,所以我使用了以下代码段。我们需要在读取 .properties 文件时传递字符集。
this.properties.load(new InputStreamReader( getClass().getClassLoader().getResourceAsStream("configuration.properties"),
Charset.forName("UTF-8")));