首页 > 解决方案 > VSCode 没有从控制台读取西里尔字母

问题描述

好吧,这就是问题所在,我已经开始使用 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

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

提前致谢

标签: javavisual-studio-codejava.util.scanner

解决方案


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

您可以看到,在外部 Window PowerShell 或命令提示符中运行它时,结果有所不同,但仍无法正确显示: 在此处输入图像描述

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

在此处输入图像描述

在 vscode 中更改集成终端编码样式并再次执行代码时,仍然没有显示: 在此处输入图像描述

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


推荐阅读