背景
把公司电脑的idea更新到了2020,本地测试代码的时候发现中文全是乱码。在网上找了半天解决方法,好不容易找到几条有用的,在这里记录下。
1、修改gradle编译选项
找到的第一个有用的方法是在build.gradle里加个设置,要求编码用UTF-8:
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
顺便找到了一篇解释这一原因的文章1,感兴趣的可以看一下。简单来说就是这一选项默认为null,不设置的话gradle会选择系统默认编码,windows下就是GBK,所以出现了这个问题。
这位老哥还提出了其他的解决方案。
上面这个解决办法虽然有效,但是对于每个Gradle项目都需要插入这么一段,很麻烦。还有一种办法可以一劳永逸的指定编码,那就是使用环境变量。在Windows下,新建GRADLE_OPTS环境变量,值为-Dfile.encoding=utf-8。然后新开一个终端窗口再次使用gradle命令,就会发现这下Gradle已经可以正确识别编码了。
如果使用IDE进行Gradle操作,那么还需要设置IDE的参数。例如在IDEA中,需要打开File->Other Settings->Default Settings->Gradle,在Gradle Vm Options中设置-Dfile.encoding=utf-8。这