idea乱码问题
idea乱码问题主要涉及几个方面:
- idea启动时的java虚拟机编码
- java源代码文件编码
- maven命令运行时(编译、打包等)编码
- java项目运行时(在idea中运行)编码
这几个点也会互相影响,不一定说单独改了哪个配置能解决乱码问题,最好是统一所有编码为UTF-8
。
在windows下,
git
和kdiff3
(git默认的对比工具)的默认编码为操作系统编码
,如果使用git解决冲突的话,文件编码可能会被改掉,一定要注意修改git和kdiff3的编码为UTF-8
idea启动时的java虚拟机编码
现象:
- 控制台乱码
解决:
找到IDEA_HOME\bin\idea.exe.vmoptions
或IDEA_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 Configurations
的VM options
中添加以下指令:
1
-Dfile.encoding=UTF-8