在IDEA中新建或导入项目时,可能会出现GBK、UTF-8等多种格式的文件,通过Settings-file encoding可以设置当前module的编码格式,但此处设置的编码格式是一次性的,当通过Maven-Relaod ALL MAVEN PROJECTS时,会去读取每个module的pom.xml文件中的编码格式配置来加载最新的编码格式。
在pom.xml中编码格式的配置如下:(以下三个配置默认为UTF-8)
XML
<properties>
<project.build.sourceEncoding>GBK</project.build.sourceEncoding>
<project.reporting.outputEncoding>GBK</project.reporting.outputEncoding>
</properties>
以及用于编译module的:
XML
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>GBK</encoding>
</configuration>
<version>3.3</version>
</plugin>
设置好后,后续Relaod ALL MAVEN PROJECTS时,则会根据pom文件配置来读取编码格式,并加载到settings-file encodings的module配置中。
在file encoding页面,如果全局的project encoding设置和module的encoding设置不同,则最终编码方式采取就近原则,即文件在module中则以当前module编码配置为准,文件在module外则以project编码配置为准。
此外,对于module下已有文件的场景:
- 如果本来文件没有中文,那么随module配置的切换,文件的编码也随之改变
- 如果原本文件为utf-8且有中文,那么module配置切换为GBK后,文件编码为了维持中文有效性,仍为utf-8,直到把中文去掉后才变为GBK
- 新建文件,文件的编码格式以当前module的编码配置为准