一、Java 常见编码简介
计算机的世界里,任何的文字都是以指定的编码方式存在的,在 Java 程序开发中最常见的 ISO9959-1、GBK/GB2312、unicode、UTF 编码
在程序中如果处理不好字符的编码,就有可能出现乱码问题
二、得到本机的编码显示
可以使用如下方法:
public static Properties getProperty()
public class Root{
public static void main(String[] args) {
System.out.println("系统默认编码:" +
System.getProperty("file.encoding"));//获取当前系统编码
}
}
- 2
- 3
- 4
- 5
- 6
可知系统的默认编码为 GBK,所以此时使用其他编码则会出现乱码
三、乱码产生
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class Root{
public static void main(String[] args) throws Exception{
File f = new File("D:" + File.separator + "test.txt");
OutputStream out = new FileOutputStream(f);//实例化输出流
//指定 ISO8859-1 编码
byte b[] = "中国,你好".getBytes("ISO8859-1");
out.write(b);//保存转码之后的数据
out.close();//关闭输出流
}
}
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
可以看出由于编码不一致,在保存时出现了乱码。
乱码产生的一个重要原因就是输出内容的编码(例如,程序指定)与接收内容的编码(本机环境默认)不一致