cmd中的Java unicode字符错误

标签 java unicode printing cmd

我在 Java 中有以下类,它用葡萄牙语打印“Hello World”:

public class PrintUnicode {
    public static void main(String[] args) {
        System.out.println("Olá Mundo!");
    }
}

我正在使用 Eclipse,所以我将项目导出到一个可运行的 Jar 文件。之后,我转到 cmd (Windows 7) 并运行生成的 jar 文件。

结果是:

Olß Mundo!

有没有简单的方法可以避免这个错误?

最佳答案

找到解决方案。只需更改为:

public class PrintUnicode {
    public static void main(String[] args) {
        System.console().printf("Olá Mundo!");
    }
}

System.out 的错误发生是因为:

By default, Java encodes Strings sent to System.out in the default code page. On Windows XP, this means a lossy conversion to an "ANSI" code page. This is unfortunate, because the Windows Command Prompt (cmd.exe) can read and write Unicode characters. (source here)

关于cmd中的Java unicode字符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3306103/

相关文章:

java - java 7中unicode的正则表达式

python - 解码 Unicode 字符串;这是什么意思,我该如何避免呢?

python 以未知列表长度的格式打印

java - JComboBox 仅在从第 1 到第 2 时更改组件(不是从第 3 到第 2)

java - 在 GUI map Java 上平移

java - MyBatis 无法加载位于项目资源文件夹中的配置 xml

javascript - 为什么 NFKC 规范化所有数字不起作用?

c# - wpf c# 获取打印机的可用纸张尺寸名称 - 就像 WinForm 中的 PrinterSettings.PaperSize.PaperName

c# - 如何在 C# 中将字符串大小转换为英寸

java - 错误填充异常 : Data must start with zero