Я пытаюсь читать в .properties файлы со многими языками, добавлять к ним новые записи, сортировать и печатать обратно в файл. У меня есть кодировка как UTF-8, и она работает для всех моих текущих языков, кроме русского. При чтении файла я получаю все вопросительные знаки из русского файла. Когда он отпечатывается, у него есть много правильного текста, но есть случайные вопросительные знаки здесь и там. Вот мой код для чтения в файле.Чтение .properties файлов, написанных на русском
Properties translation = new Properties() {
private static final long serialVersionUID = 1L;
@Override
public synchronized Enumeration<Object> keys() {
return Collections.enumeration(new TreeSet<Object>(super.keySet()));
}
}
byte[] readIn = Files.readAllBytes(Paths.get(filePath));
String replacer = new String(readIn).replace("\\","\\\\");
translation.load(new InputStreamReader(new ByteArrayInputStream(replacer.getBytes()),"UTF-8"));
Похоже, оно исправлено при печати обратно в файл. Хотя он все еще отображает вопросительные знаки, если их печатать на system.out, а не обратно в файл. Странный. –
Ваша консоль или ее шрифт, вероятно, не могут отображать русские символы. –