二进制-----> ASCLL :只能存英文和拉丁字符。-----> gb2312 :只有6700来个中文字符,1980年-----> gbk1.0 :存了2w多字符 ,1995年-----> gb18030:2.7w字符 , 2000年 --------> unicode :万国码,统一标准。 utf-32 :一个任意字符占4个字节,太大的量了用不到 utf-16 :一个任意字符占2个字节,65535个字符。能存绝大对数。极个别又存不到 utf-8 :一个英文用ASCLL码一个字节来存,一个中文占3个字符 python2 默认 ASCLL 不支持中文 转换比较麻烦、需要先解码成unicode然后在编码成想转换的语言python3 默认 unicode encode 会在编码的同时把数据转成byte类型,python2中的encode没有此功能 decode 会在解码的同时吧数据类型byte转换成字符串。 英文,数字会直接打印,但是中文会被用b'i am \xcc\xd8\xcb\xb9\xc0\xad '这种类似格式打印出来 b = byte = 字节类型 = [0-255] unicode 默认会支持所有的类型,因此在python3中不需要在转码了。