一文讲懂IDEA的编码格式file encoding

在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的编码配置为准
相关推荐
寻星探路6 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
曹牧8 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
爬山算法9 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
kfyty7259 小时前
集成 spring-ai 2.x 实践中遇到的一些问题及解决方案
java·人工智能·spring-ai
猫头虎9 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
李少兄9 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
忆~遂愿9 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
小韩学长yyds9 小时前
Java序列化避坑指南:明确这4种场景,再也不盲目实现Serializable
java·序列化
仟濹9 小时前
【Java基础】多态 | 打卡day2
java·开发语言
Re.不晚9 小时前
JAVA进阶之路——无奖问答挑战2
java·开发语言