1. 程式人生 > >Gradle專案Cygwin輸出中文亂碼的解決辦法

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"  
}