JAVA小白学习使用JAVA的第一步直接被难住了。按照网上教的方法在File Encodings中将三个编码方法都换成UTF-8并不管用(包括其他的改vmoptions等等方法)
结果后来在某评论区看到JDK18编码方式是GBK。。。通过各种尝试总算解决了。
记录一下,希望能帮助到跟我一样傻的同学们- -
另外主要参考了这篇内容:https://blog.csdn.net/u011511756/article/details/107147491
其中给出的编码-解码对应表在我理解上帮了大忙!但是在实际操作中与该作者说的还是有一些出入。
-
第一步 在Settings-File Encodings中将上面两个Global和Project的编码都改成Default(这里Default是UTF-8还是GBK无所谓);
-
第二步 在Help-Edit Custom VM Option中添加 -Dfile.encoding=GBK。效果是能够让第一步中Default的编码方式固定为GBK;
这里说明一下,很多教学里说的那个在源文件bin中的idea64.vmoption中增加-Dfile.encoding=xxx跟我这一步是一样的,但是Edit Custom VM Option的优先级更高,我试了一下两者写不一样的编码方式,最后Default会变成Edit Custom VM Option中所写的。
-
第三步 重启IDEA。因为Edit Custom VM Option中的改动需要重启软件后生效。
经过这几部我的程序输出乱码问题就解决了。进入Settings-File Encodings中查看,会发现无论刚才Default是什么,现在都固定为了GBK。
说明关于为什么我要选Default,而不直接在File Encodings中选择确定的编码方式:
具体原因不是很明白,但是我的电脑会做产生非常奇怪的现象。如果我在那两个空选择GBK,那么我编译的第一次是可以正常输出的,但是我再编译一次就会变成乱码,经过上文给出的链接中的对比表,发现出现了编码UTF-8解码GBK的乱码。但是此时我把两个空选择为UTF-8,也是立刻点编译可以正常输出中文,但再点一次编译就变成了乱码,这次乱码是编码GBK解码UTF-8。我实在是不知道为啥- -
最后按照我上述步骤改变之后,我的电脑就不会自己瞎改编码方式。。原因我不太清楚。
PS:参考的链接中作者说File Encodings中的内容对控制台输出不会产生任何影响,但是在我的尝试中显然是有很大影响的。不知道是我理解错误还是怎样。
希望能帮到各位刚使用JDK18的同学们
环境Windows 11
IntelliJ IDEA Community Edition 2022.1.3
JDK18



