python3编码转换
1 a='我很好' #python3 默认的编码为unicode 2 print('我是a',a,type(a)) #打印结果:<class 'str'> 3 #把a转成gb2312 4 a_gb2312=a.encode('gb2312') #默认是unicode所以不需要decode(),直接encode成想要转换的编码gb2312 5 print('我是gb2312',a_gb2312,type(a_gb2312)) #打印结果:我是gb2312 b'\xce\xd2\xba\xdc\xba\xc3' 6 #把a转成utf8 7 a_utf8=a_gb2312.decode('gb2312').encode('utf-8') 8 #当前字符为gb2312所以要先decode成unicode(decode中传入的参数为当前字符的编码集)然后再encode成utf-8 9 print('我是utf-8',a_utf8,type(a_utf8)) #打印结果: 我是utf-8 b'\xe6\x88\x91\xe5\xbe\x88\xe5\xa5\xbd' 10 #把a转成gbk 11 a_gbk=a_utf8.decode('utf-8').encode('gbk') 12 #当前字符集编码为utf-8要想转换成gbk先decode成unicode字符集再encode成gbk字符集 13 print("我是gbk",a_gbk,type(a_gbk)) #打印结果: 我是gbk b'\xce\xd2\xba\xdc\xba\xc3' 14 #把a转成gb18030 15 a_gb18030=a_gbk.decode('gbk').encode('gb18030') 16 #当前字符集编码为gbk要想转换成gb18030先decode成unicode字符集再encode成gb18030字符集 17 print('我是gb18030',a_gb18030,type(a_gb18030)) #打印结果: 我是gb18030 b'\xce\xd2\xba\xdc\xba\xc3' 18 #把a转成uicode 19 a_unicode=a_gb18030.decode('gb18030') #注意当转换成unicode时 并不需要encode() 20 print('我是unicode',a_unicode,type(a_unicode)) #打印结果: 我是unicode 我很好
21
22 #总结各个编码的互相转换都要先转换成unicode然后通过unicode再转换成想要的编码
![](https://img2018.cnblogs.com/blog/1587678/201901/1587678-20190119155237068-1798769360.png)