如何解决gradle项目编码兼容问题

2020-12-22 15:31:34 浏览数 (1)

开发环境:

1.idea2020以下版本,

2.gradle5.6.4

3.consul1.8.0

4.springBoot

以上环境在下window环境下可能出现编码兼容问题,启动报编码相关问题的错误。目前本平台未发现苹果系统有此问题,深究其原因,苹果系统的idea版本是默认使用系统的编码,默认为UTF8,它能完美的支持gradle,而window默认是使用GBK的,有的同学在安装idea之初就会设置编码,将其改为UTF8,如下:

然而,即便是如此设置了,依然可能出现gradle项目启动报编码问题相关的错误,下面展示几种常见的错误:

代码语言:javascript复制
java.lang.IllegalStateException: Failed to load property source from
 'file:/D:/daima/es-management/es-process/build/resources/main
 /application-test.yml' (classpath:/application-test.yml) for
  profile test
…………
Caused by: org.yaml.snakeyaml.error.YAMLException: 
java.nio.charset.MalformedInputException: Input length = 2

以上的错误是因为在读取配置文件时,编码不兼容,无法识别导致的,解决办法:修改转换配置文件编码为iso-8859-1

然而,此方法虽然能解决配置文件的报错,却无法解决类文件的继续报错,在启动编译的时候,它将会抛出更多的异常,有可能是dao和mapper无法映射,也可能是MalformedByteSequenceException异常

代码语言:javascript复制
MalformedByteSequenceException:3 字节的 UTF-8 序列的字节 3 无效。

终极解决办法:

设置idea全局文件编码方式:

打开Help 选择Edit Custom VM Options

输入 -Dfile.encoding=utf-8

如此即可完美解决!!!

0 人点赞