一.编码介绍
1.ASCII码:
总共有128个,用字节的低7位表示,0-31控制字符如换行回车删除等,32-126打印字符,可以通过键盘输入显示
2.ISO-8859-1
对ASCII编码的扩展,ISO-8859-1涵盖大多数西欧语言字符,应用广泛,单字节编码,总共能表示256个字符
3.GB2312
全称是《信息交换用汉字编码字符集 基本集》,双字节编码,总的编码范围是A1-F7,从A1-A9是符号区,
总共包含682个字符,从B0-F7是汉字区,包含6763个汉字。
4.GBK
全称叫《汉字内码扩展规范》,是对GB2312的扩展,加入了更多汉字,编码范围8140-FFFF(去掉XX7F)
共23940个码位,它能表示21003个汉字,兼容GBK2312,也就是说用GBK2312编码的汉字可以用GBK编码,不会乱码。
5.GB18030
全称是《汉字交换用汉字编码字符集》,是我国的强制标准,它可以是单字节,双字节或者四字节编码,兼容GBK2312,
虽然是国家标准,但是应用不广泛。
6.UTF-16
具体定义了Unicode字符在计算机中的存取方法,UTF-16用两个字节表示Unicode转化格式,这个是定长表示
方法,不管什么字符都可以用两个字节表示,两个字节是16个bit,在操作字符串的时候大大简化了操作,放大了存储空间。
7.UTF-8
UTF-8 采用了一种变长技术,每个编码区域有不同的字码长度。不同类型的字符可以是由 1~6 个字节组成。
二.编程验证
package com.briup.BriupTest.day13;
public class ByteTest {
public static void main(String[] args) throws Exception {
String a = "中";
System.out.println("UTF-8编码长度:"+a.getBytes("UTF-8").length);
System.out.println("GBK编码长度:"+a.getBytes("GBK").length);
System.out.println("GB2312编码长度:"+a.getBytes("GB2312").length);
System.out.println("==========================================");
String c = "0x20001";
System.out.println("UTF-8编码长度:"+c.getBytes("UTF-8").length);
System.out.println("GBK编码长度:"+c.getBytes("GBK").length);
System.out.println("GB2312编码长度:"+c.getBytes("GB2312").length);
System.out.println("==========================================");
char[] arr = Character.toChars(0x20001);
String s = new String(arr);
System.out.println("char array length:" + arr.length);
System.out.println("content:| " + s + " |");
System.out.println("String length:" + s.length());
System.out.println("UTF-8编码长度:"+s.getBytes("UTF-8").length);
System.out.println("GBK编码长度:"+s.getBytes("GBK").length);
System.out.println("GB2312编码长度:"+s.getBytes("GB2312").length);
System.out.println("==========================================");
}
}
运行结果:
UTF-8编码长度:3
GBK编码长度:2
GB2312编码长度:2
==========================================
UTF-8编码长度:7
GBK编码长度:7
GB2312编码长度:7
==========================================
char array length:2
content:| ? |
String length:2
UTF-8编码长度:4
GBK编码长度:1
GB2312编码长度:1
==========================================
三,图解