嗯,问题来了,我已经开始使用 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
我尝试过设置编码,但没有它,但它似乎不起作用,有什么我错过的吗?
提前致谢
我在我的机器上测试了代码并得到了相同的结果:没有显示;
您可以看到,当在外部Windows PowerShell或命令提示符中运行它时,结果有所不同,但仍然无法正确显示:
当我们将编码方式改为GBK(936)时,西里尔字母就可以正确显示了:
在vscode中更改集成终端编码风格并再次执行代码时,仍然没有任何显示:
关于 VS Code 中外部命令提示符和集成终端之间的这些不同结果,我已经提出了 github 请求。我正在做一些研究,如果我得到任何有用的信息,我会更新你。
尝试将 VS 中的代码页集成终端更改为 chcp 1251。