一文讲懂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的编码配置为准
相关推荐
IT_Octopus3 小时前
IntelliJ 本地日志路径自定义:`-DLOG_PATH=./logs` 为什么总“不听话“
java·log4j·intellij-idea
长征coder4 小时前
【无标题】
java·性能优化
新时代牛马4 小时前
PCI与PCIe 硬件原理、配置空间/BAR 与 Linux 驱动完整篇:从 LTSSM、TLP 到 ECAM 与probe
java·linux·服务器
Bs_MoneyMagnet4 小时前
基于springboot+vue的医疗健康便民服务平台的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring
sunshine22 girl5 小时前
Java学习一 环境配置2 Idea的入门使用和maven配置,项目启动脚本配置
java·maven
有点。6 小时前
*C++哈夫曼树与哈夫曼编码
java·c++·servlet
CRMEB系统商城7 小时前
CRMEB标准版系统(Java)v3.1正式发布
java·spring·微信小程序·php·教育电商
写后端的胖头鱼7 小时前
【高频面试题】Java 基础类型 + 包装类 + String 互相转换
java·开发语言
weixin_460443567 小时前
企业考试系统从.NET迁移到Java+Linux:数据库迁移、接口兼容与灰度切换实践
java·煤矿培训考试系统·煤矿在线考试系统·煤矿安全培训·煤矿考试系统·一人一档
香菜TTT7 小时前
Redis的哨兵机制
java·数据库·redis