关于编程中常用的乱码解决方法。

主要介绍编程中遇到的中文乱码,转化为utf-8即可。


1. 读取properties文件乱码

1
2
Properties properties=new Properties();
properties.load(this.getClass().getClassLoader().getResourceAsStream("file.properties"));

这样使用如果文件不是utf-8编码读取中文会出现乱码问题,可以使用下面代码解决,同时修改文件编码utf-8。

1
2
Properties properties=new Properties();
properties.load(new InputStreamReader(this.getClass().getResourceAsStream("file.properties"),"utf-8"));

2. utf-8写入文件乱码。

1
2
Writer writer = new BufferedWriter(new OutputStreamWriter(outputStream, "utf-8"));
writer.write(new String(new byte[] { (byte) 0xEF, (byte) 0xBB,(byte) 0xBF }));

重点在第二行的写入dom头。

3. gradle编译文件乱码

代码中出现必要的中文Windows下编译会乱码。可在gradle文件中加入以下代码解决。

1
2
3
tasks.withType(JavaCompile) {
options.encoding = 'utf-8'
}

4. Tomcat中JVM编码设置

如果遇到测试程序正常但是在Tomcat中运行乱码,可设置Tomcat启动时的JVM的默认编码来解决。

1
-Dfile.encoding=UTF-8

加入之后会出现控制台乱码,则修改一下Idea的文件IntelliJ IDEA Community Edition 2016.3.3\bin\idea64.exe.vmoptions(此为64位文件,32位找idea.exe.vmoptions)即可,在最后加入以下代码

1
-Dfile.encoding=UTF-8