java - 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
我已经尝试设置编码并且没有它,但它似乎不起作用,我错过了什么吗?
提前致谢
解决方案
我已经在我的机器上测试了代码并得到了相同的结果:没有显示;
您可以看到,在外部 Window PowerShell 或命令提示符中运行它时,结果有所不同,但仍无法正确显示:
当我们将编码样式改为GBK(936)时,西里尔字符就可以正确显示了:
在 vscode 中更改集成终端编码样式并再次执行代码时,仍然没有显示:
关于 VS Code 中外部命令提示符和集成终端之间的这些不同结果,我已经提出了github request。我正在做一些研究,如果我得到任何有用的信息,我会更新你。
推荐阅读
- java - Spring Cloud Contracts - 没有为主题设置消费者 [...]
- c# - 是否可以通过 C# 连接到不同的 oracle 数据库版本?
- php - 从字符串的开头删除一些特殊字符
- python - AttributeError:模块“cupy”没有属性“cupyx”
- ios - 当您将应用程序从后台带到前台时,无法触发 didReceive 通知委托
- c# - 如何将具有多个日期的字符串解析为列表
? - loops - 在循环中获取从一行到另一行的范围
- python - 如何使用循环从 JSON 中提取多个数据以创建 CSV
- c# - 成功单击同一元素上的 Sendkeys 后,会出现 ElementNotInteractableException
- python-3.x - 如何在存储在 DataFrame 中的树中查找叶子