阅读用俄语编写的 .properties 文件

Reading .properties files written in russian

我正在尝试读取具有多种不同语言的 .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"));

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

顺便说一句,将 SString 转换为字节数组,然后将字节转换回字符并读取它们是浪费时间和资源。就做

translation.load(new StringReader(replacer));

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