python -- 字符编码

python -- 字符编码

字符编码

Python解释器在加载.py文件中的代码时,会对内容进行编码。

ASCll 美国标准信息交换代码,是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用8位来表示(一个字节),即: 2**8 = 265-1,所以,ASCII码最多只能表示255个符号。

计算机是西方世界的产物,所以ASCII就用这么点的字符就够了。0~127位就是西方用的那些字母和字符。ASCII无法显示中文。 ASCII码,一个英文字在8个bit位=1bytes。

GB2312(1980年)=7445个字符(包含特殊符),6763个汉字和682个其他符号。

GBK1.0(1995年)21886个符号。分21003个汉字区和图形符号区。

GB18030(2000年)27484个汉字,还收录了藏文、蒙文、维吾尔文等主要的少数名族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不做要求,所以手机,MP3一般只支持GB2312。

从ASCII、GB2312、GBK到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中有相同的编码,后面的标准支持更多的字符。中文Windows的缺省内码还是GBK。可以通过GB18030升级包升级到GB18030。

显然ASCII码无法将世界上的各种文字和符号全部表示,所以就需要新出一种可以代表所有字符和符号的编码,即Unicode。

Unicode(统一码、万国码、单一码) 是一种在计算机上使用的字符编码。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由16位来表示(2个字节),即2**16=65536。

注,此处时候的是最少2个字节,可能更多,
UTF-8,可变长的Unicode,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:
ASCII码中的内容用1个字节保存,欧洲的字符用2个字符保存,东亚(中文)的字符用3个字节保存。

Python的注释

  • 单行注释:用#
  • 多行注释:用’’’或”””
  • ’’’的用法,还可以使打印多行
# 如果这里不是紧跟着3个引号后面,在打印的时候就会出现多一行空白行。
name = '''name1,  
name2,
name3
'''
print(name)

写在后面

  • python2默认编码:ASCll
  • python3默认编码:Unicode
  • GBK 是目前为止用的最常见的显示中文的编码格式。
  • ASCII, 一个英文字符,占一个字节byte(占8位bit)
  • Unicode,一个英文字符或中文,占二个字节(占16位)
  • UTF-8,一个英文字符,占一个字节,欧洲码占二个字节,中文占3个字节。

|编码格式|英文|欧洲|中文|
|:--😐:--😐:--😐:--😐:--😐
|ACSII|1 字节|maybe|none|
|Unicode|2 字节|2 字节|2 字节|
|UTF-8|1 字节|2 字节|3 字节|

posted @ 2017-06-21 21:42  gzz041  阅读(150)  评论(0)    收藏  举报