Python字符编码
一、字符编码
1.ASCII码
一个字符占8bit 。
共2**8=256个字符。
ASCII码(American Standard Code for Information Interface, 美国标准信息交换代码)。ASCII码是基于拉丁字母的一套电脑编程系统,主要用于显示现代英语和其他西欧语言。它被设计为用1个字节来表示一个字符,所以ASCII码表最多只能表示2**8=256个字符。实际上ASCII码表中只有128个字符,剩余的128个字符是预留扩展用的。
2.GB2312与GBK
随着计算机的普及和发展,很过国家都开始使用计算机。大家发现ASCII码预留的128个位置根本无法存储自己国家的文字和字符。因此各个国家开始制定各自的字符编码表,其中中国的的字符编码表有GB2312和GBK。
3.Unicode(等长编码)
一个字符占16bit。
共2**16=65536个字符。
后来随着世界互联网的形成和发展,各国的人们开始有了互相交流的需要。但是这个时候就存在一个问题,每个国家所使用的字符编码表都是不同的。这个时候,人们希望有一个世界统一的字符编码表来存放所有国家所使用的文字和符号,这就是Unicode。Unicode又被称为 统一码、万国码、单一码,它是为了解决传统的字符编码方案的局限性而产生的,它为每种语言中的每个字符设定了统一并且为之一的二进制编码。
4.UTF-8(变长编码)
UTF-8是对Unicode编码的压缩和优化。
它不再要求最少使用2个字节,而是将所有字符和符号进行分类编码:
- ASCII码中的内容用1个字节保存
- 欧洲的字符用2个字节保存
- 东亚的字符用3个字节保存
二、字符串编码
str.encode("编码码型")
默认编码码型为UTF-8。
三、字符串解码
str.decode("解码码型")
默认解码码型为UTF-8。