CMD编译后录入中文不能识别

CMD编译后录入中文不能识别
跟着视频进行JAVA学习,按照视频内容进行代码编写
在CMD的过程中,如果录入中文的“男”或者“女”,总是提示我录入错误
下面截图就是整个过程。第一张是学习视频,第二张是我写的代码,第三张是编译。

img

img

img

将gender打印输出看看,值是否为输入的对应值。

你把gender的类型改成String,'男'和'女'改成 “男"和"女",用字符串比较试一下。
if( gender.equals("男") )

你的代码也没啥问题,但是也可能是输入缓冲区有多余的回车
你调试下,看看gender此时字符是什么,是不是\n

帮你对照过了,代码无误

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7712406
  • 除此之外, 这篇博客: 微信公众号每日推送给女朋友的程序中的 打开cmd终端输入 部分也许能够解决你的问题。
  • 以下回答由chatgpt基于相关博客总结生成:

    问题原因是CMD默认的编码方式是ASCII,无法正确处理中文字符。为了解决这个问题,你可以按照以下步骤进行操作:

    1. 在你的JAVA代码中,使用Scanner类来接受用户的输入,而不是Console类。因为Console类在CMD中输入中文字符时会出错。修改你的代码如下:
    import java.util.Scanner;
    
    public class Test {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入你的性别(男/女):");
            String gender = scanner.next();
            System.out.println("你的性别是:" + gender);
        }
    }
    
    1. 在CMD中,执行以下命令来编译你的代码:
    javac Test.java
    
    1. 接着,执行以下命令来运行你的代码:
    java -Dfile.encoding=UTF-8 Test
    

    其中-Dfile.encoding=UTF-8参数指定了使用UTF-8编码方式来运行代码。

    这样,你就可以在CMD中正确录入中文字符了。

    请注意,这种方式仅在CMD中有效,如果你在其他环境中运行代码(如IDE或其他终端),则不需要修改编码方式。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632