我们在上一节提到,用中文全角符号会报错,所以在这一节中,为大家讲解一下Python的编码。

大家都知道,世界上第一台计算机是美国研发出来的,当时美国人也没想到这种东西会遍布全世界,所以他们计算机默认的编码格式是ascii。

ascii

ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。


到现在,计算机已经遍布全球,而全球这么多个国家,肯定会有很多语言,所以ascii已经不能满足人们的需求了。这个时候就出现了一种兼容多种语言的编码格式 Unicode,也就是万国码。

Unicode

Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。

UTF-8

UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码Unicode字符。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。


utf-8可以说是Unicode的优化版。

我们都知道一个字母是1个字节,就是一个字母是8位,而Unicode使用16位表示字节的,所以你即使不够16位它都会在你前面补0补够16位,这就意味着你用Unicode编写字母的时候会浪费内存,而且拖慢了运行速度。而utf-8,它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。