1、在py2中默认编码是ASCII, py3里默认是utf-8
2、Unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), utf-8是Unicode的一个子集,在保存纯英文符号时,仍然使用ASCII码
3、在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string
4、GBK编码转换成UTF-8编码:第一步:先将GBK编码转换成Unicode码,第二步:将Unicode码转换成UTF-8编码。
5、UTF-8编码转换成GBK编码:第一步:先将UTF-8编码转换成Unicode码,第二步:将Unicode码转换成GBK编码。
#-*- coding:utf-8 -*-
s = "你好"#虽然有声明编码是utf-8,但python的程序代码仍然是Unicode编码
s2 = u"哈啰" #指明是Unicode编码
print(s.encode("gbk"))# 告诉python编码成gbk码
#print(s.encode("gbk").decode("utf-8")) # gbk码不能直接转换成utf-8编码,要先转换成Unicode码后才能转成utf-8编码
print(s.encode("utf-8"))# 告诉python编码成utf-8码
print(s.encode("utf-8").decode("utf-8").encode("gb2312"))# 先编码成utf-8再解码成Unicode后编码成gb2312码,decode("utf-8")告诉python将utf-8编码解码成Unicode码