java用win+R编译结果为什么有问号

import java.util.Scanner;
public class TestVar12{
        public static void main(String[] args){
                //键盘录入学生的信息:年龄,身高,姓名,性别:
                //键盘录入年龄:(接收int类型数据)
                Scanner sc = new Scanner(System.in);
                System.out.print("请录入年龄:");
                int age = sc.nextInt();
                //键盘录入身高:(接收double类型数据)
                System.out.print("请录入身高:");
                double height = sc.nextDouble();
                //键盘录入姓名:(接收String类型数据--》字符串)
                System.out.print("请录入姓名:");
                String name = sc.next();
                //键盘录入性别:(接受char类型)
                System.out.print("请录入性别:");
                String sexStr = sc.next();
                char sex = sexStr.charAt(0);
                //上面两句可以合为一句表示:char sex = sc.next().charAt(0);
                System.out.println("该学生的信息为:姓名是:"+name+",年龄是:"+age+",身高为:"+height+",性别是:"+sex);
        }
}

img

cmd 的字符码是gbk 你编辑代码的编辑器编码改成和cmd的一样就行了

img

cmd 的默认编码是GBK编码,GBK字符中一个中文字符占2个字节, 而你编写的Java代码是UTF-8编码, UTF-8编码中一个中文字符占3个字节。所以出现问题的根本原因在于字符集的编码和解码不一致。解决方式就是把编码方式改成一致就可以了。

字符集的问题,百度一下idea设置字符集