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(); } } }