# 编码和解码
# 二进制 => ASCII码(只能存英文和拉丁字符,一个字符占一个字节(8位)的空间)
# => gb_2312(中文编码,只有6000多个中文字符,1980年) => gbk 1.0(1995年,20000多字符)
# => gb18030(2000, 存了27000多个中文字符) => unicode(万国码,一个unicode占4个字节)
# unicode:
# utf-32: 一个字符占4个字节
# utf-16: 一个字符占2个字节, 有少部分找不到的去utf-32里面找, 这时候一个字符占的字节大于2
# utf-8: 可边长的字节, 英文用ASCII码存, 占1个字节, 一个中文占3个字节
# 会向下兼容bgk等
# python2 默认编码格式为 ASCII python3 默认编码格式为Unicode(utf-8)
# encode在编码时,会吧数据转成bytes类型
# a = '特斯拉'
# a_to_unicode = a.decode('utf-8')
# unicode_to_gbk = a_to_unicode.encode('gbk')
# print(a) # python2 运行时 会乱码 python3 执行时 打印的值会乱码
# print(a_to_unicode) # Python2 运行时 是正常文字 python3时会报错
# print(unicode_to_gbk) # Python2 运行时 是正常文字 python3时会报错