python中 encode()和 decode()

本文主要介绍Python3中encode()和decode()方法。encode()用于将文件字符串编码存入硬盘,decode()用于将二进制文件解码为文本字符串。还说明了Python3中文本字符串和字节字符串类型特点,以及避免乱码要编码解码格式一致,并详细介绍了两个方法的参数、返回值和用法。

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实例

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值