IDEA中代码中文和控制台输出中文乱码解决

提示:嫌麻烦的直接跳过第一项即可!但第二和第三项一定要连着看!

1.Project Encodings 和 Global Encoding的作用

首先从官方文档里面了解到,是这样描述Global Encoding的:

意思是:如果遇到不属于项目的文件(即你单独打开一个Java文件而没有New Project)或者从版本系统中检出源码的时候,没有明确指定编码,这两种情况下会选择Global Encoding的编码格式来进行,而不是所谓的英文理解上的应用于全部项目的编码格式

翻译过来是:对于表格中未明确指定编码的文件,您需要选择一个合适的编码方式来确保这些文件可以被正确地读取或写入。

如果Project Encoding后有<System Deafualt>就代表你的Project Encoding没有特别选中,这时候项目采用的是Global Encoding,如下图中

例如你的同学李华用的是GBK编码,而你用的是UTF-8的编码,那么你打开他的文件的时候,就会发生编码错误提示,因为你使用的是UTF-8,此刻<系统默认:UTF-8>就是没有列出在表格的编码格式(即 not listed in the table below),除此之外,Project Encodings也是你新建一个项目时文件使用的默认编码,接下来我会详细说明。

2.直接解决方案

右下角的File Encoding是直接控制着整个Java文件的编码:包括Java代码的中的中文文本的编码格式:例如输出的你好,以及编译后存储的编码格式,通过File Encoding可以进行转换,这个File Encoding需要和Project Encoding 以及Global Encoding保持一致。

那么怎么纠正呢?有两种方法:

(1)自己创建的项目

Global Encoding、Project Encoding、File Encoding采用统一格式

Ctrl +Alt + S打开设置,找到 编辑器 -> 文件编码(英文:Editor -> File Encoding),然后按照下面的调整。

(2)别人的项目没有使用UTF-8编码

按照(1)中的方法先将Global Encoding和Project Encoding调整过来(防止以后打开文件的时候错误),关键右下角的File Encoding进行调整,选择UTF-8,然后转换(Convert)。

选择Convert(不是Reload),选择Reload是没有用的。

1.Reload是对你的编辑器文本中的代码编码进行重新加载编码格式,对生成的解释文件的编码格式是没有改变的,只转换文件编码格式。

2.而Convert是对你的文本、文件的编码格式都进行转换

注意,当你对你的项目进行过Convert之后,你的项目的编码格式和你Settings设置中的Project Encodings和Global Encodings就没有约束关系了,它就是它,现在只跟右下角的File Encoding有关系

3.Convert 和 Reload 的区别

下面就要说到Reload和Convert的详细操作了,相信不少同学都是在这一乱按导致编码格式无法调整回去了,首先承接上面的我们知道,现在更改过Convert一次编码格式后,就只需要对右下角的FIle Encoding进行操作就行了,现在我使用的是GBK编码,那么我Reload一次看看

由 GBK Reload 为UTF-8的结果:

变为UTF-8的编码后,发现编辑器的文件发生乱码了,并且上面还给出了错误提示:文件在一个错误的编码格式 UTF-8 中加载,说明我们仅是改变了文件的代码编码格式,运行一下,会发现乱码

说明我们的文本格式还是GBK,而文件编码却是UTF-8,但如果我想要变为UTF-8编码而不想使用GBK编码怎么办呢?那就要使用Convert了

我们先重复上述操作,将文件编码调整回GBK,再选择convert

会发现编辑代码没有乱码,并且控制台输出也没有乱码,完美!

4.特别注意

在上一项操作中,我 Convert 到 UTF-8 之前要先保证此时的编码是正确的没有错误提示你要 Reload 到原来的编码格式之后,再Convert才行)即编辑器中的文件没有乱码,如下图:

只要没有上一行这样的提示或者乱码,我们就可以随心所欲的convert,但如果有这样的提示,你再convert的话,会发出警告

提示你想要的convert的编码格式无法识别文件(即编辑器中)的编码,如果还要继续,你会发现你之后无论再怎么convert编辑器和控制台都是乱码,因为此时你无论怎么转换编辑器中的乱码都不会消失,所以控制台输出的自然也是乱码,你就只能手动将乱码删除改为之前的中文

5.额外尝试方法

找到IDEA安装目录,如果安装目录忘记了,按下Win + R,输入where IDEA即可查看IDEA安装目录。

然后在bin目录下找到idea64.exe.vmoptions这个文件

在最后一行添加代码-Dfile.encoding=UTF-8

6.Tomcat输出日志控制台乱码

找到设置下的 编辑器 ->  常规 -> 控制台,选择对应的Tomcat文件中的默认编码格式相同即可。

或者还可以在Tomcat的编辑配置中加上如图中的内容:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YTC_040518

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值