decode()为解码,把从硬盘中读取的二进制文件(字节流字符串文件) 解码 为文本字符串(Unicode)。
encode()为编码,把文件字符串,进行编码,存入到电脑硬盘中
一般转化如下:
在Python3中的字符串类型:
文本字符串类型:
即我们通常定义的str类型的对象。在Python3中,str类型的对象都是Unicode,因此对于str类型的对象只有encode()方法,没有decode()方法(若运行,会报错)。
字节字符串类型:
即byte类型的对象。对于该类对象,是由str类型对象使用encode()方法产生,byte对象可以进行解码过程,从而得到真正的内容。
避免出现乱码的准则:
遵循编码使用哪种格式,解码就使用哪种格式。
具体用法如下:
1、decode() 方法以指定的编码格式解码 bytes 对象。默认编码为 'utf-8'。
decode()方法语法:
bytes.decode(encoding="utf-8", errors="strict")
参数:
返回值:
为解码后的文本字符串str型
详细用法如下:
- encoding -- 要使用的编码,如"UTF-8"。
- errors -- 设置不同错误的处理方案。默认为 'strict',意为编码错误引起一个UnicodeError。 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通过 codecs.register_error() 注册的任何值。
str = "菜鸟教程";
str_utf8 = str.encode("UTF-8")
str_gbk = str.encode("GBK")
print(str)
print("UTF-8 编码:", str_utf8)
print("GBK 编码:", str_gbk)
print("UTF-8 解码:", str_utf8.decode('UTF-8', 'strict'))
print("GBK 解码:", str_gbk.decode('GBK', 'strict'))
结果:
2、encode() 方法以指定的编码格式编码字符串。errors参数可以指定不同的错误处理方案。
decode()方法语法:
bytes.decode(encoding="utf-8", errors="strict")
参数
- encoding -- 要使用的编码,如"UTF-8"。
- errors -- 设置不同错误的处理方案。默认为 'strict',意为编码错误引起一个UnicodeError。 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通过 codecs.register_error() 注册的任何值。
返回值:
该方法返回编码后的字符串,它是一个 bytes 对象(二进制字符串)。
具体用法:如上面decode实例