字符编码

python解释器在加载.py文件中的代码时,会对内容进行编码(默认ASCII)


二进制

举例:古时候烽火台,点火和不点火只有两种状态,传递信息太少。

 约定点火数1,代表1-100

    点火数2,代表101-1000

    点火数3,代表1001-5000

    点火数4,代表5001-1000

虽然有进步,但还不够精确


如果引入二进制,可以精确表示任意数


字符编码

二进制和字母的转换

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)

GB2312(1980年)7445多个汉字字符,包括6763个汉字和682个其它符号。

GBK1.0(1995年)收录了21886个符号,它分为汉字区和图形符号区:汉字区21003个字符。

GB18030(2000年)取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数名族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。


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

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。所有字符占2个字节。

UTF-8,存英文字符占1个字节,存中文占3个字节

总结如下:

ASCII 255 1bytes

    -->1980 gb2312   7445个汉字字符

      -->1995 GBK1.0   21885个

        -->2000 GB18030  27484个

      --> unicode 2bytes

        --> utf-8 en:1byte , zh:3bytes

python3比python2最大区别,默认支持字符编码集

python2中文支持,第一行输入:# -*- coding:utf-8 -*-

python3默认支持utf-8