ASCII
每个做JavaWeb开发的新手都会遇到乱码问题,每个做Python爬虫的新手都会遇到编码问题,为什么编码问题那么蛋疼呢?
这个问题要从1992年Guido van Rossum创造Python这门语言说起,那时的Guido绝对没想到的是Python这门语言在今天会如此受大家欢迎,也不会想到计算机发展速度会如此惊人。Guido在当初设计这门语言时是不需要关心编码的,因为在英语世界里,字符的个数非常有限,26个字母(大小写)、10个数字、标点符号、控制符,也就是键盘上所有的键所对应的字符加起来也不过是一百多个字符而已。这在计算机中用一个字节的存储空间来表示一个字符是绰绰有余的,因为一个字节相当于8个比特位,8个比特位可以表示256个符号。于是聪明的美国人就制定了一套字符编码的标准叫ASCII(American Standard Code for Information Interchange),每个字符都对应唯一的一个数字,比如字符A对应的二进制数值是01000001,对应的十进制就是65。最开始ASCII只定义了128个字符编码,包括96个文字和32个控制符号,一共128个字符,只需要一个字节的7位就能表示所有的字符,因此ASCII只使用了一个字节的后7位,最高位都为0。

EASCII(ISO/8859-1)
然而计算机慢慢地普及到其他西欧地区时,他们发现还有很多西欧所特有的字符是ASCII编码表中没有的,于是后来出现了可扩展的ASCII叫EASCII,顾名思义,它是在ASCII的基础上扩展而来,把原来的7位扩充到8位,它完全兼容ASCII,扩展出来的符号包括表格符号、计算符号、希腊字母和特殊的拉丁符号。然而EASCII时代是一个混乱的时代,大家没有统一标准,他们各自把最高位按照自己的标准实现了自己的一套

从ASCII到Unicode,再到UTF-8,编码技术经历了从简单到复杂的演变。最初,ASCII满足了英语字符的需求,但随着计算机全球化,EASCII、GBK、Unicode相继出现,解决多语言字符编码问题。Unicode统一全球字符编码,而UTF-8以其高效性和兼容性成为互联网主流编码。
最低0.47元/天 解锁文章
8万+

被折叠的 条评论
为什么被折叠?



