最近将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"
}