python——编码问题

ASCII

ascii编码是一个字节,没有中文
python——编码问题
一个字节:(2^8)-1=255(还有个0),常用的是前127个(7位),首位通常为0,有时有特殊用途,127之后的为扩展字符,不同的国家对应不同字符,所以一般不输出

Unicode

Unicode编码(万国码)通常是两个字节代表一个字符,2**16-1=65535,可代表6万多个字符,因而兼容万国语言

UTF-8

英文只需要一个字节就能表示,占用了更多的空间,所以有了utf-8:
utf-8是可变长的unicode编码,节省空间,英文用1个字节,中文3-6个字节

在UTF-8中,0-127号的字符用1个字节来表示,使用和US-ASCII相同的编码


如果不在python文件指定头信息#--coding:utf-8--,那就使用默认的python2中默认使用ascii,python3中默认使用utf-8

编码与解码

encode(格式1):将格式1转换为Unicode
decode(格式2):将Unicode转换为格式2