VSCode 无法从控制台读取西里尔字母

问题描述 投票:0回答:2

嗯,问题来了,我已经开始使用 VScode,并且无法从控制台读取西里尔字符。

我的代码:

import java.util.Scanner;

class App {
    public static void main(String[] args) throws Exception {
      Scanner input = new Scanner(System.in,  "UTF-8");
      String word = input.nextLine();
      System.out.println(word);
    }
}

现在,当我输入任何西里尔字母字符串时,它会向我打印空字符串。如果我写类似的东西

System.out.println("Привет"); //cyrillic symbols

它会打印“Привет”,这很好。所以我猜测它与读取字符串而不是输出它有关。

chcp 命令给出

Active code page: 65001

我尝试过设置编码,但没有它,但它似乎不起作用,有什么我错过的吗?

提前致谢

java visual-studio-code java.util.scanner
2个回答
2
投票

我在我的机器上测试了代码并得到了相同的结果:没有显示;

您可以看到,当在外部Windows PowerShell或命令提示符中运行它时,结果有所不同,但仍然无法正确显示: enter image description here

当我们将编码方式改为GBK(936)时,西里尔字母就可以正确显示了:

enter image description here

在vscode中更改集成终端编码风格并再次执行代码时,仍然没有任何显示: enter image description here

关于 VS Code 中外部命令提示符和集成终端之间的这些不同结果,我已经提出了 github 请求。我正在做一些研究,如果我得到任何有用的信息,我会更新你。


0
投票

尝试将 VS 中的代码页集成终端更改为 chcp 1251。

© www.soinside.com 2019 - 2024. All rights reserved.