1 编码
python解释器在加载 .py 文件中的代码时,对内容默认进行ascill编码,因此存在中文会报错,所以需要告诉python解释器,用什么编码来执行源代码。)
ASCII码,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536。
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
问题:python程序在windows终端下乱码
Windows的默认编码为GBK,Linux的默认编码为UTF-8。
python2.7 中utf-8转gbk需先转成unicode再由unicode转成gbk。
decode:解码
encode:编码
python3中可直接由utf-8转成gbk。python3内部会先把utf-8转成unicode再由unicode转成gbk。(python3中unicode也就没有了)