编码表的发展史
ASCII编码表的由来
ASCII编码表的由来,因为计算机只认识二进制,并且我们储存的所有数据最终也都是由二进制形式储存的,如果是数字那直接转换成二进制就可以了,但是字符就不行,比如英文中的26个字母,还有一些特殊的符号,所以就需要一个字符集,来记录每个字符对应的二进制是多少,美国就发布了ASCII编码表。
ASCII的第一版是由美国在1963年发布的。
unicode编码表
ASCII编码表仅仅满足了以英语为主的国家,韩语日语,中国的汉字,都各自有了自己的编码表,如中国的GBK,GB2312,韩文日语有东亚编码表,即
(East Asian Code Tables),对于世界这个大家庭而言,这样就乱套了,当我用GBK编码表,打开韩国某个网站结果显示的是乱码,因为GBK编码表里没有韩文编码规则,数据传过来但计算机不认识,这样可不行。于是就诞生了unicode编码表,所有国家统一使用这个编码表,所以你可以叫它“世界表”。
我们用python,ord打印一个汉字在unicode所对应的数字
但是unicode有个问题就是,它不管哪个国家的语言,它最少是占用两个字节,就是16bit,但是英语一个字节就可以表示,你非用2个字节,这样就浪费硬盘和内存。
所以就有了utf-8,还有utf-16,utf-32。
utf-16,能转二进制的16位就转16位,16位不够就转32位
utf-32,直接转32位的二进制,哪怕只占8位的数,如00000000 00000000 00000000 00000001
utf-8,8个bit够就用8个bit,不够就16bit,16bit不够就32个bit。
这种编码方式就解决了,unicode编码表浪费资源的情况。