Gradle项目Cygwin输出中文乱码的解决办法

最近将Android项目使用的gradle版本从3.5升级到了4.4,发现在cygwin中输出的中文变成乱码了,有点影响心情。在网上搜索一番后,终于找到了解决方案。

乱码原因:Windows平台下中文默认编码是GBK,Cygwin控制台编码格式设置为UTF-8,编码格式不一致导致出现乱码。解决方案就是想办法使用 UTF-8格式的编码进行编译。

gradle官方文档推荐的设置编码格式为UTF-8的方式如下:

tasks.withType(JavaCompile) {  
    options.encoding = "UTF-8"  
}

但是我的Android项目升级前在Cygwin中正常输出中文,升级后变成乱码了。于是就想办法去设置jvm的编码为UTF-8。

在gradlew文件中找到了相关配置

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS="-Dfile.encoding=UTF-8"

设置后正常输出中文。

在新建的gradle项目中,修改gradlew文件,并在build.gradle中输出中文进行测试,可以正常输出中文。

task testPrint {
	println("hello world 你好")
}

tasks.withType(JavaCompile) {  
    options.encoding = "UTF-8"  
}

Gradle项目Cygwin输出中文乱码的解决办法_第1张图片

你可能感兴趣的:(经验记录)