Java文件与io——常见字符编码

时间:2023-03-10 01:26:20
Java文件与io——常见字符编码

在计算机世界里,任何的文字都是以指定的编码方式存在的。

常见编码有:ISO8859-1、GBK/GB2312、unicode、UTF

ISO8859-1:编码属于单字节编码,最多只能表示0-255的字符范围,主要在英文上应用

GBK/GB2312:中文的国际编码,专门用来表示汉字,是双字节编码

unicode:java中就是使用此编码方式,也是最标准的一种编码,是使用16进制表示的编码。但此编码不兼容                 ISO8859-1编码

UTF:由于unicode不支持ISO8859-1编码,而且容易占用更多的空间,而且对于英文字母也需要使用两个字节         编码,这样使用unicode不便于传输和存储,因此产生了utf编码,utf编码兼容了ISO8859-1编码,也可         以用来表示所有语言字符,不过utf是不定长编码,每个字符的长度从1-6个字节不等,一般在中文网页中         使用此编码,因为这样可以节省空间。

造成乱码的根本原因:

1、程序使用的编码与本机的编码不统一

2、在网络中,客户端与服务端编码不统一

public class CodeDemo {

    /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String name="字符编码";
try {
String newName=new String(name.getBytes("GBK"),"iso-8859-1");
System.out.println(newName); //还原
String s=new String(newName.getBytes("iso-8859-1"),"GBK");//将iso-8859-1字符编码变为GBK
System.out.println(s);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }