例如 System.out.println("╚"); 显示为?,同样适用于 System.out.println("\u255a");
为什么这不起作用?Stdout 确实支持这些字符,所以我不明白。
例如 System.out.println("╚"); 显示为?,同样适用于 System.out.println("\u255a");
为什么这不起作用?Stdout 确实支持这些字符,所以我不明白。
如果您使用的是 Windows,控制台不是 UTF-8 而是 UTF-16,这与 Java 使用的本机编码相同,因此您应该能够直接打印宽字符串。
我不是 Java 程序员,但在 C 语言的情况下,您必须在打印 UTF-16 实际工作之前_setmode()
使用特殊模式调用。_O_U16TEXT
如果您想打印多字节字符串,则可以使用chcp 65001
Win32 API 从命令行或以编程方式将 Windows 控制台设置为 UTF-8,SetConsoleOutputCP()
但请注意WriteFile()
返回写入的字符数而不是文档中写入的字节数的错误. 此错误导致 Windows 控制台上的 UTF-8 被 Perl、PHP 和 Ruby 损坏。我相信即使是 MSVCRT 也会成为受害者。
祝你好运!