1.在python2默认编码是ASCII, python3里默认是unicode
2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so utf-16就是现在最常用的unicode版本, 不过在文件里存的还是utf-8,因为utf8省空间
3.在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string
s='你好' # python3 默认编码unicode ,变量都是unicode,不会随程序默认改变而改变
print(s)
s_gbk=s.encode("gbk")
print('s_gbk:',s_gbk)
s_gbk_unicode=s_gbk.decode('gbk')
print(s_gbk_unicode)
s_utf_8=s_gbk.decode('gbk').encode('utf-8')
print('s_utf_8', s_utf_8)
结果
你好
s_gbk: b'\xc4\xe3\xba\xc3'
你好
s_utf_8 b'\xe4\xbd\xa0\xe5\xa5\xbd'