Использование java.util.Properties для чтения акцентированных строк из файла свойств - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь прочитать свойства из файла constants.properties, используя java.utils.Properties. Только некоторые из этих свойств содержат акцентированные символы, такие как é, è, ô, и когда я читаю их, используя getProperty(), акценты удаляются. т.е.:

Générateur de formulaire

становится

Generateur de formulaire

Я знаю, что файлы свойств считываются с кодировкой ISO 8859-1, поэтому яя уже пробовал переключать символы для экранирования юникода:

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"));

IЯ видел, что одним из решений было бы переключить формат файла свойств с .property на .xml, но в идеале я бы не хотел этого делать, поскольку это подразумевало бы переписывание всего моего константного файла снова.

Ответы [ 2 ]

0 голосов
/ 30 октября 2019

У меня была проблема с акцентом при использовании французских символов, поэтому я использовал приведенный ниже фрагмент кода. Нам нужно передать кодировку при чтении файла .properties.

this.properties.load(new InputStreamReader( getClass().getClassLoader().getResourceAsStream("configuration.properties"), 
                        Charset.forName("UTF-8")));
0 голосов
/ 30 октября 2019

\u0065 равно e, а не é (что составляет \u00E9).

Так что, как только вы установите правильный экранирование Юникода, он будет прочитан правильно.

...