几种常见的编码:
1.美国标准ASCII码
8位,其中1位没有用,只能表示128种情况
2.ISO8859
欧洲,拉丁用的,因为美国的128种不够全面,这时候需要对其进行扩展
3.中国用的GB2312,GBK
GBK是GB2312的升级版本,这里最多两个字符来表示一个字符。这里的问题是底层如何知道一个字节到底是单独表示字符还是两个字节加在一起表示字符。这里是开头为0表示单独表示,开头为1表示和后面的一起表示。
4.Unicode
融合了多国的编码方式,为所有国家字符分配了一个编码。所有文字都用2个字节表示。 2^16次方
5.utf-8
unicode问题:
1.英文只要一个,其它的方式要两个。
2.如何表示是一个字节还是两个字节合起来。
3.用标志位的方式,这样会少一位,只要2^15了,就不够用了。
变长的编码方式,用1-4位表示,按照如何的进行填写,下图举了一个汉字的例子。
一幅图总结各编码的关系: