前言
遇到一个莫名其妙idea 使用maven编译项目控制台乱码的问题,试了网上很多种方法都没法解决,但是其他项目又是正常的。如图所示:
![](https://img-blog.csdnimg.cn/img_convert/afd7eba349c280bd0a923ecd954f5787.png)
解决方法一
由于其他项目都是正常的,就这个项目有问题,我就看了一下pom.xml,发现没有什么区别,idea设置的Edit->General->Console中Default Encoding也是UTF-8,因此排除了是idea设置导致的maven编译乱码问题。
![](https://img-blog.csdnimg.cn/img_convert/dd67d568d7a058c27f1dc0d77b0b943c.png)
最终比较了这个项目与其他项目,找到的答案居然是这个项目默认使用的JDK版本有问题!这个项目默认使用的JDK版本是18.0.1,而其他项目用的是JDK1.8.0_251
![](https://img-blog.csdnimg.cn/img_convert/49375345034d28fc2e41f0c642b1ca05.png)
估计是之前装了一个JDK18,然后idea打开项目的时候默认使用了这个最新的JDK,导致maven也使用了JDK18进行编译操作,最终导致了idea控制台出现了乱码。将JDK改成1.8即可解决这个问题。
解决方法二
如果要保持JDK18,且不让idea的maven控制不乱码,用的就是这个网上的解决方案了,修改idea中maven的VM参数
进入Build,Execution,Deployment->Build Tools->Maven->Runner,修改VM Options,增加
-Dfile.encoding=GBK
如图所示:
![](https://img-blog.csdnimg.cn/img_convert/ac06b4b3d50d43e3fc5080f9513c80f3.png)
注意:经过我的试验,只有GBK才能让idea maven编译的控制台不乱码。
但是对于全局都是UTF-8,且习惯了都采用UTF-8编码的我来说,这是完全不可接受的!!因此我认为这不是一个好的解决方案!
解决效果
![](https://img-blog.csdnimg.cn/img_convert/5e7af4eb61fb71239425c4df82805d47.png)