我正在 Unix 上运行 Java 程序。为了简化问题,我只描述相关部分。
public static void main(String[] args) {
System.out.println("féminin");
}
我的输出是垃圾。这显然是字符编码问题,法语字符 é 未正确显示。我尝试过以下方法:
public static void main(String[] args) {
PrintStream ps = new PrintStream(System.out, true, "ISO-8859-1");
ps.println("féminin");
}
但是我的输出仍然显示?具有法国特色。
我在命令提示符下使用 java -Dfile.encoding=IBM437 DSIClient féminin
运行了相同的 efile
效果很好。但是如何解决 Unix 的字符编码问题呢?谢谢
最佳答案
问题很可能是您的代码编辑器和终端仿真器使用不同的编码,并且 Java 的默认编码概念也可能不同。
要查看您的终端和编辑器是否一致,您只需 cat
您的 java 源文件即可。 é 显示正确吗?如果是这样,您可以在源代码编辑器和终端中使用相同的编码,但这不是 Java 的默认编码。 OTOH,如果您看不到 é,您需要找出您的终端和编辑器使用的编码并使它们保持一致。
关于Java Unix 字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18955610/