提问者:小点点

如何保存UTF-8文件而不将字符转换为Java中的转义unicode字符?


我试图用UTF-8字符保存YAML文件,但是字符会自动转换为转义的unicode字符。

例如:

&4&l➸ &5&lLegendary Crate

变成:

&4&l\xe2\ufffd\xb8 &5&lLegendary Crate

但是当我用运行按钮从Intellij IDEA运行我的程序时,它会以原来的方式保存文件。

我正在使用Bukkit API的FileConfiguration类来保存YAML文件。

下面是我的代码:

private Map<String, FileConfiguration> configurations = new HashMap<>();
private void saveConfig(String fileName) {
    try {
        configurations.get(fileName).save(new File("db/", fileName));
    } catch (IOException ex) {
        System.out.println("Couldn't save! Exception: " + ex);
    }
}

我假设使用启动参数可以解决这个问题,但是-dfile.encoding=utf-8没有任何帮助。


共1个答案

匿名用户

很显然,您应该在-jar.jar之前添加启动参数。

Java-dfile.encoding=utf-8-jar.jar为我解决了这个问题。