windows10环境下cmd代码页设置为65001(UTF-8)后,java获取用户中文输入乱码

运行环境:
1.jdk1.8
2.cmd执行java,且cmd 通过chcp命令设置代码页为65001(UTF-8)
3.cmd命令格式为:java Test 或 java -Dfile.encoding=utf-8 Test

结果:
以下两种获取用户中文输入方式均乱码

问题:
什么原因导致的?以及如何解决?
(直接说把cmd代码页改成936(GBK)请爬一边)

 

 

1.
Scanner scanner = new Scanner(System.in, "utf-8");
//或 Scanner scanner = new Scanner(System.in);
String nextLine = scanner.nextLine();
System.out.println(nextLine);


2.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in, "utf-8"));
// 或 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
System.out.println(line);

java接收后,做转换

为啥要在cmd运行?