Windows 10 CLI UTF-8 编码

use*_*260 4 java windows cmd command-line-interface

问题:

在使用斯洛文尼亚语键盘布局的英文 Windows 10 上,所有命令行界面似乎都无法显示(打印)UTF-8 字符,即 ?、š 和 ž,它们被替换为 ?。(我假设所有 UTF-8 特定字符,因为 ? 和 ? 也不起作用。)

测试于:

  • Windows 10 64 位英语 - 斯洛文尼亚语键盘布局上的 CMD、Powershell、Cmder ......失败
  • Windows 10 64 位英语语言上的 Intellij IDEA - 斯洛文尼亚语键盘布局......成功 -> 在 IDE 中根据需要工作,但不是 CLI。
  • CMD Windows 10 64 位英文语言 - 英文键盘 ... 成功
  • CMD Windows 10 64 位斯洛文尼亚语 - 斯洛文尼亚语键盘布局...成功
  • 多个 Linux 发行版(Ubuntu、Mint、Kali)……成功

到目前为止尝试过:

  • 将 chcp 更改为 chcp 65001 ... 不成功
  • 在 regedit 中创建自动运行文件以强制使用 UTF-8 ... 不成功
  • 不同的java编译器……不成功

示例代码:

public class Test2 {
public static void main(String[] args) {
    System.out.println("? š ž ? ?");

    }
}
Run Code Online (Sandbox Code Playgroud)

指令:

>javac -encoding UTF-8 test2.java
>java Test2
? ? ? ? ? 
Run Code Online (Sandbox Code Playgroud)

其他注意事项:

问题出现在运行在不同硬件上的多台计算机上。默认情况下,所有上述字符在上述所有 CLI 中都可以正常工作。所以这个问题似乎只出现在java中。

And*_*eas 5

使用chcp 65001然后运行java -Dfile.encoding=UTF-8 Test2

chcp 65001
javac -encoding UTF-8 Test2.java
java -Dfile.encoding=UTF-8 Test2
Run Code Online (Sandbox Code Playgroud)

请记住在类名之后命名您的 Java 源文件,区分大小写。