阅读俄语写的.properties文件

时间:2015-06-22 19:53:32

标签: java utf-8

我正在尝试使用许多不同的语言读入.properties文件,向它们添加新条目,排序并打印回文件。我的编码为UTF-8,它适用于除俄语之外的所有当前语言。在阅读文件时,我会从俄罗斯文件中获取所有问号。当它打印出来时,它有很多正确的文字,但在这里和那里都有随机的问号。这是我在文件中阅读的代码。

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

2 个答案:

答案 0 :(得分:2)

new String(readIn)replacer.getBytes()不使用UTF8。他们使用您的平台默认编码。将StandardCharsets.UTF_8作为两个调用的附加参数传递。

BTW,将STring转换为字节数组,然后将字节转换回字符并读取它们是浪费时间和资源。只是做

translation.load(new StringReader(replacer));

答案 1 :(得分:0)

有时将编码更改为utf-8会导致错误,例如一些额外的字符或什么都不做。 链接:How can i read a Russian file in Java?可能会对您有所帮助。