encode是编码,里面传入的参数是需要转成的字符集,
decode是解码,里面传入的参数是本身的字符集,用本身的字符集解码为unicode字符集再转码
1 # -*- coding: utf-8 -*- 2 ‘‘‘ 3 Python3 默认编码为unicode 4 ‘‘‘ 5 #输出默认编码 6 import sys 7 print(sys.getdefaultencoding()) 8 9 #文件编码为utf-8 10 s = ‘你好‘ 11 #把s转换为gbk编码 12 s_to_gbk = s.encode("gbk") 13 print(s_to_gbk) 14 #输出结果为bytes类型--b‘\xc4\xe3\xba\xc3‘ 15 16 #再把此时的gbk转换成utf-8 17 s_to_utf8 = s_to_gbk.decode("gbk").encode("utf-8") 18 print(s_to_utf8) 19 #输出结果为bytes类型--b‘\xe4\xbd\xa0\xe5\xa5\xbd‘ 20 21 #再把此时的utf-8转换成gb2312 22 s_to_gb2312 = s_to_utf8.decode("utf-8").encode("gb2312") 23 print(s_to_gb2312) 24 #输出结果为byts类型--b‘\xc4\xe3\xba\xc3‘,因为gb2312字符集归属于gbk字符集,所以转换结果bytes相同 25 26 #把gbk转换为gb2312 27 s_to_gbk_gb2312 = s_to_gbk.decode("gbk").encode("gb2312") 28 print(s_to_gbk_gb2312) 29 #输出结果为byts类型--b‘\xc4\xe3\xba\xc3‘ 30 31 32 ‘‘‘ 33 encode是编码,里面传入的参数是需要转成的字符集, 34 decode是解码,里面传入的参数是本身的字符集,用本身的字符集解码为unicode字符集再转码 35 总结:python3基于unicode编码,若文件头声明为utf-8只是以utf-8字符集显示,基本的还是unicode 36 当使用unicode转换为utf-8时直接encode("utf-8")就可以了, 37 同理若使用unicode转换为gbk时直接encode("gbk")就可以了, 38 若使用utf-8转换成gbk则需要先解码decode("utf-8").encode("gbk")再编码为gbk 39 若使用utf-8转换成gb2312则需要先解码decode("utf-8").encode("gb2312")再编码为gb2312 40 若使用gbk转换成utf-8则需要先解码decode("gbk").encode("utf-8")再编码为utf-8 41 若使用gbk转换成gb2312则需要先解码decode("gbk").encode("gb2312")再编码为gb2312 42 gb2312同理... 43 ‘‘‘
python3字符集之间--encode与decode之间的转码详解
原文:https://www.cnblogs.com/weijiazheng/p/10548567.html