今天学习编码,大概我们所用的编码,比较常用的就三中gbk ,utf-8,gb2312,但是gb2312跟gbk差不多只不过gbk比gb2312中文字符更加的多,
首先学习编码
编码就是将字符变成字节数组
getBytes() getBytes(charsetName);
public static void EncodeDemo() throws IOException{//编码要抛出异常
String s="你好";
//编码
byte[] b=s.getBytes();
System.out.println(Arrays.toString(b));
//解码
String str=new String(b);
System.out.println(str);
//系统默认的编码是gbk 但是如果用ios8859-1解码的话,会出现乱码
String s1="你好";
byte[] b1=s1.getBytes("gbk");
System.out.println(Arrays.toString(b1));
//解码用iso8859-1
String str=new String(b1,"iso8859-1");
System.out.println(str);//输出为????
//解决办法:我们先将乱码编码
byte[] b2=str.getBytes("iso8859-1";);
//然后解码后再用gbk解码
String s3=new String(b2,"gbk");
//但是如果将上面的iso8859-1改成utf-8的话,用同样的方法,依然是乱码,因为gbk,utf-8都是中文的编码
}