目录
一、说明
电脑重装了系统,重新下载IDEA后,打开编写JAVA代码,出现了控制台中文乱码问题,在网上找解决办法,解决问题后,便写下了这个笔记,希望能帮到大家
我IDEA版本:2022.2
JDK版本:18
二、配置前的准备工作
1.首先先来了解一下什么叫做乱码:
简单的说就是:编码和解码时用了不同或者不兼容的字符集。
对应到真实生活中:就好比是一个美国人为了表示祝福在纸上写了bless(编码过程)。而一个法国人拿到了这张纸,由于在法语中bless表示受伤的意思,所以认为他想表达的是受伤(解码过程),这个就是一个现实生活中的乱码情况
在计算机科学中一样:一个用UTF-8编码后的字符,用GBK去解码。由于两个字符集的字库表不一样,同一个汉字在两个字符表的位置也不同,最终就会出现乱码。
更加详细的大家可以看看以下文章和视频:
史上最通俗,彻底搞懂字符乱码问题的本质 - 知乎 (zhihu.com)
一听就懂字符集、ASCII、GBK、UTF-8、Unicode、乱码、字符编码、解码问题的讲解_哔哩哔哩_bilibili
2.再来了解一下Java程序的运行机制:
Java程序运行时,必须经过编译和运行两个步骤。首先将扩展名为.java的源文件进行编译,生成扩展名为.class的字节码文件。然后java虚拟机对字节码文件进行解释执行,并将结果显示出来。若用IDEA编写一般程序的话,就是显示到控制台上,对字节码文件进行解码,要确保控制台解码采用的字符集和字节码文件编码采用的字符集一致或兼容,乱码常常出现在这个过程中
3.之后我们再看一下在IDEA中Java项目的结构
这个是新建的java项目,里面还什么都没有
当我在src下新建一个Java类,该项目结构会变成(此时还未编译运行)
当我对这个类进行编译运行(点击运行)后,会变成
请注意,多了一个out文件夹,在它的子目录java下有一个T1,这就是T1.java编译后的字节码文件T1.class
4.总结一下,java项目的结构
三、开始配置
1.解码方面
IDEA控制台解码采用的是GBK
注:控制台解码默认是系统的编码为"GBK",国家曾规定所有微软的软件进入中国都要默认GBK编码,所以Windows系统默认编码也为GBK
所以要确保源程序编译成的字节码文件编码采用的字符集为GBK,这样就可以避免出现乱码现象了
2.编码方面
我们看一下源程序编译后字节码文件编码采用的字符集(扩展名为.class的文件),
在下面页面的右下角,有一个灰色的【GBK】,表明其编码采用的字符集为GBK
点击它,发现不能更改(如果不是GBK,我们就到【编辑器】中去修改,之后重新编译源代码就OK啦
3.开始配置
在IDEA中点击【文件】,再点击【设置】
之后会弹出下面这个框,在【编辑器】下找到【文件编码】,将【全局编码】【项目编码】【属性文件的默认编码】改为GBK,之后点击【应用】,再点击【确认】
5.例子
原来是这个样子的,控制台出现中文乱码,为了解决控制台中文乱码问题,下面进行配置
配置过后