Windows环境下Gradle构建Vaadin 8应用出现编码乱码如何修复?
问题原因
该乱码是典型的UTF-8字符被错误编码解析导致的问题:你的Java源码为UTF-8格式保存,Windows环境下Gradle默认会使用系统默认的GBK编码读取Java源码,硬编码的特殊字符在编译阶段就已经被错误转换,因此运行时输出乱码。
修复方案
方案1:全局配置Gradle编码(优先推荐)
在项目根目录下新建gradle.properties文件,添加以下配置即可:
org.gradle.jvmargs=-Dfile.encoding=UTF-8
该配置会强制Gradle的JVM进程全程使用UTF-8编码,编译、运行阶段都会生效,修改完成后重新执行构建运行命令即可恢复正常。
方案2:单独指定编译和运行任务的编码
如果不想修改全局JVM参数,也可以直接在build.gradle中添加编码配置:
plugins { id 'com.devsoap.plugin.vaadin' version '2.0.0.beta2' } // 新增编码配置 tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } tasks.withType(JavaExec) { jvmArgs '-Dfile.encoding=UTF-8' }
注意:请确认你的IDE保存Java源码时使用的是UTF-8编码,避免源码本身编码错误导致乱码。
修改完成后重新构建运行应用,setContent(new Label("A B C Å Ä Ö"))即可正常输出A B C Å Ä Ö。
内容的提问来源于stack exchange,提问作者haba713
相关产品推荐
相关产品推荐

