首页 > 解决方案 > 编码 Eclipse 调试器与 JVM

问题描述

我试图将我从中获得的路径保存file.getAbsolutePath()在文件中。问题是一个文件č的名称中有一个。Aprintln()显示为č?但我可以使用字符串创建一个同名的新文件并č出现。所以我猜JVM使用的编码是不正确的。我已经尝试了几种编码,但č此时它们都没有。我已经运行了 Eclipse 的调试模式,它显示č正确。

所以我的问题是:默认调试器变量视图的默认编码是什么?或者有没有办法在不丢失的情况下保存字符串č

a = file.getAbsolutePath();
a.compare(new String(file.getAbsolutePath().getBytes()));

这给出0了其他路径而不是路径čäüö不是问题。

标签: javaeclipseencodingcharacter-encoding

解决方案


在编码时使用 UTF 字符集StandardCharsets.UTF_8在解码时使用相同的字符集,以避免丢失字符。

例如,

a = file.getAbsolutePath();
a.compare(new String(file.getAbsolutePath().getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8));

将给出0所有路径(有和没有č)。如果使用非 UTF 编码,则OngetBytes()和字符可能会丢失。println()在 Java 中,字符串实例本身没有编码,因为它是由 Unicode 字符组成的。


推荐阅读