特别感谢:
首先感谢@浪客带佬,感谢带佬上手实操几个小时为我解决问题,泪目
要是想省流直接跳到解决方法和无效怎么办一栏
错误示例:
如图一段非常简单的接收字符串代码:
但是终端无法接收中文的字符(你干嘛~哎哟是输入,乱码是输出)如图2:
如图2可知代码的编码是UTF-8,我们输入了"你干嘛~哎哟"但是输出了乱码,而终端的编码是936(GBK),JDK版本是20
为什么不设置成65001(UTF-8)?因为936(GBK)就可以65001不行(至少在JDK17编码UTF-8终端65001情况下不行)
解决方法:
如图3,我们在JDK环境配置中把JAVA_HOME路径的20改为11或17(这两亲测有效,其他没测)
然后重新运行程序,不需要改任何东西,运行结果如图4:
没有修改除JDK版本外任何东西,第一行为我输入的内容,第二行为我输出的内容,问题就这么解决了
说实话问题就这么解决了,我和带佬都是极其无语的状态,我个人为此苦闷数天,带佬为了帮我解决问题也花了数个小时逐一排查问题,结果发现,欸~是JDK版本~,真无语啊真的无语啊
无效怎么办?
如果无效就随便创个java新文件在你的那个文件/包的外面,任何运行下如图1这种简单的代码,如果可以正常运行说明是包里有单独的编码设置或JDK设置,进设置文件改掉即可,如果还没办法,那本篇文章就对你无用了,泪目~