各种中文编码格式在eclipse中的乱码测试

以下测试均基于该软件环境:win10系统、eclipse

概述

在最近的一次编码过程中,我在eclipse上读取一个中文文档的时候出现了乱码。本文就是测试哪种格式的文档会在eclipse中出现乱码,并且给出一种解决方案。

一些背景知识

想要深入理解中文编码格式的相关知识,可先转至UTF-8和GBK等中文字符编码格式介绍及相互转换

测试部分

我对不同编码格式的txt文档进行了输出测试,结果如下:
各种中文编码格式在eclipse中的乱码测试
源码如下:

package chinese_character_code;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Codetest {
	public static void fileout(String filename) {
		FileReader in = null;
		try {
			in = new FileReader(filename);
		} catch (FileNotFoundException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		BufferedReader rd = new BufferedReader(in);
		try {
			System.out.println(rd.readLine());
			rd.close();	
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}	
	}
	public static void main(String[] args) {
		String ANSI = "src\\txt\\ANSI.txt";
		System.out.print("ANSI:");
		fileout(ANSI);
		String GB18030 = "src\\txt\\GB18030.txt";
		System.out.print("GB18030:");
		fileout(GB18030);
		String Unicode_big_endian = "src\\txt\\Unicode big endian.txt";
		System.out.print("Unicode_big_endian:");
		fileout(Unicode_big_endian);
		String Unicode = "src\\txt\\Unicode.txt";
		System.out.print("Unicode:");
		fileout(Unicode);
		String UTF_8 = "src\\txt\\UTF-8.txt";
		System.out.print("UTF_8:");
		fileout(UTF_8);
		
	}
}

可以发现,能够正常输出的编码格式有:ANSI和GB18030。

其中一个解决方案

由上面的测试可知五种测试方案中能够正常输出的编码格式为ANSI和GB18030,那么问题来了,如果遇到输出乱码的格式应该怎么办呢?
这里给出一个解决方案是用EditPlus(一个软件)改变编码格式

  • 第一步:下载EditPlus
    可移步此处EditPlus下载地址
  • 第二步:安装EditPlus
    根据提示安装即可
  • 第三步:打开软件
  • 第四步:File->Open 打开对应文件
  • 第五步:进行更改
    Document->File Ecoding->Convert Encoding Multiple…->选择对应文件点击OK->选择需要更改的编码格式点击OK
  • 第六步:检查是否更改完成
    我们只需要查看软件中文档右下角就能发现更改完成了。如下图:
    各种中文编码格式在eclipse中的乱码测试

总结

  • 在eclipse中,能够正常输出的编码格式有:ANSI和GB18030;
    不能正常输出的编码格式有:UTF-8、Unicode big endian、Unicode

  • 对于出现乱码的编码格式我们可以用EditPlus进行更改。