encode,decode,str,bytes
----encode(encoding="utf-8", errors="strict")方法该方法将字符串(str)转换为某种编码的字节对象。 参数encoding默认为utf-8(亦即utf_8或utf8),表示默认转换为utf-8编码的字节对象 ---decode(encoding="utf-8", errors="strict")方法,该方法将字节对象解码为原始的字符串。 >>> u = '中文' # 指定字符串类型对象u >>> str1 = u.encode('gb2312') # 以gb2312编码对u进行编码,获得bytes类型对象 >>> print(str1) b'\xd6\xd0\xce\xc4' GB2312 >>> str3 = u.encode('utf-8') # 以utf-8编码对u进行编码,获得bytes类型对象 >>> print(str3) b'\xe4\xb8\xad\xe6\x96\x87' utf8 >>> u1 = str1.decode('gb2312') # 以gb2312编码对字符串str进行解码,获得字符串类型对象 >>> print('u1') '中文' 字节数 : 2;编码:GB2312 字节数 : 2;编码:GBK 字节数 : 3;编码:UTF-8 字节数 : 4;编码:UTF-16
在bytes和str的互相转换过程中,实际就是编码解码的过程,必须显式地指定编码格式。
u='中文' s = bytes(u,encoding='utf-8') print(s) b'\xe4\xb8\xad\xe6\x96\x87' s1=str(s) print(s1) b'\xe4\xb8\xad\xe6\x96\x87' s2 = str(s,encoding='utf-8') print(s2) 中文
u='中文' s = bytes(u,encoding='gb2312') print(s) b'\xd6\xd0\xce\xc4' s2 = str(s,encoding='gb2312') print(s2) 中文