idea乱码问题

idea乱码问题主要涉及几个方面:

  • idea启动时的java虚拟机编码
  • java源代码文件编码
  • maven命令运行时(编译、打包等)编码
  • java项目运行时(在idea中运行)编码

这几个点也会互相影响,不一定说单独改了哪个配置能解决乱码问题,最好是统一所有编码为UTF-8

在windows下,gitkdiff3(git默认的对比工具)的默认编码为操作系统编码,如果使用git解决冲突的话,文件编码可能会被改掉,一定要注意修改git和kdiff3的编码为UTF-8

idea启动时的java虚拟机编码

现象:

  • 控制台乱码

解决: 找到IDEA_HOME\bin\idea.exe.vmoptionsIDEA_HOME\bin\idea64.exe.vmoptions,追加以下配置:

1
-Dfile.encoding=UTF-8

java源代码文件编码

现象:

  • java源代码合并、或用其它编辑器打开时出现乱码

解决:

  • 将已有的java源码文件全部改成UTF-8编码
  • File -> Settings -> Editor -> File Encodings 进行以下设置(保证以后新添加的文件编码都是UTF-8编码):
    • IDE Encoding : UTF-8
    • Project Encoding : UTF-8
    • Default encoding for properties files : UTF-8

maven命令运行时(编译、打包等)编码

现象:

  • 执行maven命令时控制台输出乱码

解决:pom.xml文件中配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<build>
<plugins>
<!-- 指定maven编译时的java版本 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- 指定maven资源文件编码 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- 解决maven test命令时console出现中文乱码乱码 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1 </version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.19.1</version>
</dependency>
</dependencies>
<configuration>
<argLine>-Dfile.encoding=UTF-8</argLine>
<skipTests>true</skipTests>
<forkMode>never</forkMode>
</configuration>
</plugin>
<!-- 指定maven打war包时资源文件编码 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<resourceEncoding>UTF-8</resourceEncoding>
</configuration>
</plugin>
</plugins>
</build>

4. java项目运行时(在idea中运行)编码

现象:

  • 运行java项目时控制台输出乱码(使用tomcat时,可能会出现页面乱码)

解决: 在java项目的Run/Debug ConfigurationsVM options中添加以下指令:

1
-Dfile.encoding=UTF-8

idea 乱码