最近一直在学习使用Gradle项目构建工具,但是一直遇到一个问题就是中文乱码,比如将易天
乱码成了鏄撳ぉ
,经过研究我发现这正是将UTF-8编码识别为GBK编码出现的现象。经过一番查阅,解决办法就是在build.gradle
文件中添加如下一段,rhGradle将文件识别为UTF-8编码。当然,这需要你的项目文件本来就是UTF-8编码的,如果默认是GBK编码,就不需要更改。
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
看了一下官方文档的说明,对于Gradle来说编码这个属性默认情况下是null,也就是Gradle会根据你操作系统的版本来选择编码。Windows中文操作系统的编码正是GBK。所以才会出现这个错误。这一点上,Windows做的确实不如Linux。Linux把编码全部选择为UTF-8,万事大吉,以后就不需要操心编码问题了。
上面这个解决办法虽然有效,但是对于每个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
。这样IDEA中的Gradle也可以正确执行Gradle命令了。