Python encode()方法和decode()方法详解
作者:北城石桥 发布时间:2023-06-16 11:47:15
Python encode()方法
encode() 方法为字符串类型(str)提供的方法,用于将 str 类型转换成 bytes 类型,这个过程也称为“编码”。
encode() 方法的语法格式如下:
str.encode([encoding="utf-8"][,errors="strict"])
注意,格式中用 [] 括起来的参数为可选参数,也就是说,在使用此方法时,可以使用 [] 中的参数,也可以不使用。
该方法各个参数的含义如表 1 所示。
表 1 encode()参数及含义
参数 | 含义 |
---|---|
str | 表示要进行转换的字符串。 |
encoding = "utf-8" | 指定进行编码时采用的字符编码,该选项默认采用 utf-8 编码。例如,如果想使用简体中文,可以设置 gb2312。 当方法中只使用这一个参数时,可以省略前边的“encoding=”,直接写编码格式,例如 str.encode("UTF-8")。 |
errors = "strict" | 指定错误处理方式,其可选择值可以是:
|
注意,使用 encode() 方法对原字符串进行编码,不会直接修改原字符串,如果想修改原字符串,需要重新赋值。
【例 1】将 str 类型字符串“C语言”转换成 bytes 类型。
>>> str = "C语言"
>>> str.encode()
b'C\xe8\xaf\xad\xe8\xa8\x80\xe4\xb8\xad\xe6\x96\x87\xe7\xbd\x91'
此方式默认采用 UTF-8 编码,也可以手动指定其它编码格式,例如:
>>> str = "C语言"
>>> str.encode('GBK')
b'C\xd3\xef\xd1\xd4\xd6\xd0\xce\xc4\xcd\xf8'
Python decode()方法
和 encode() 方法正好相反,decode() 方法用于将 bytes 类型的二进制数据转换为 str 类型,这个过程也称为“解码”。
decode() 方法的语法格式如下:
bytes.decode([encoding="utf-8"][,errors="strict"])
该方法中各参数的含义如表 2 所示。
表 2 decode()参数及含义
参数 | 含义 |
---|---|
bytes | 表示要进行转换的二进制数据。 |
encoding="utf-8" | 指定解码时采用的字符编码,默认采用 utf-8 格式。当方法中只使用这一个参数时,可以省略“encoding=”,直接写编码方式即可。 注意,对 bytes 类型数据解码,要选择和当初编码时一样的格式。 |
errors = "strict" | 指定错误处理方式,其可选择值可以是:
|
【例 2】
>>> str = "C语言"
>>> bytes=str.encode()
>>> bytes.decode()
'C语言'
注意,如果编码时采用的不是默认的 UTF-8 编码,则解码时要选择和编码时一样的格式,否则会抛出异常,例如:
>>> str = "C语言"
>>> bytes = str.encode("GBK")
>>> bytes.decode() #默认使用 UTF-8 编码,会抛出以下异常
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
bytes.decode()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd3 in position 1: invalid continuation byte
>>> bytes.decode("GBK")
'C语言'
来源:https://www.cnblogs.com/beichengshiqiao/p/17010011.html
猜你喜欢
- 1.将以下代码加入到HEML的<body></body>之间<SCRIPT language=jav
- 根据Nicholas的说法,有四种代码会拖慢脚本的运行,并最终导致脚本失控。分别是次数过多的同步循环、庞大的函数体、不恰当的递归和不合理的D
- import matplotlib.pyplot as pltimport jiebafrom wordcloud import wordc
- 在网上查了部分资料但是发现粘上去的代码都存在问题,无奈只好自己修改了一下,代码如下: 如下代码能正常运行,都是网上查找资料最后拼凑总结出来的
- 0 环境Python版本:3.6.8系统版本:macOS MojavePython Jupyter Notebook1 引言七月了,大家最近
- has_key()方法可以检查字典中是否含有指定的键,如果有则返回True,否则就返回False。语法格式:dictionary_name.
- Microsoft? SQL Server? 2000 提供了两种主要机制来强制业务规则和数据完整性:约束和触发器。触发器是一种特殊类型的存
- 本文实例讲述了django框架模板中定义变量的方法。分享给大家供大家参考,具体如下:总有一些情况,你会想在django template中设
- Abs (数值)绝对值。一个数字的绝对值是它的正值。空字符串 (null) 的绝对值,也是空字符串。未初始化的变数,其绝对为 0例子:ABS
- 在ACCESS中更改控件的默认属性 Lisa Friedrichsen, 欧弗兰帕克,堪萨斯州 如果您在设计一个Microsoft ACCE
- 重置oracle序列从指定数字开始 代码如下:declare n number(10); v_startnum number(10):=1
- 代码如下: function HandleTabKey(evt) {
- django是 * 页,一般来说需要实时的生成访问的页面,展示给访问者,这样,内容可以随时变化,也就说请求到达视图函数之后,然后进行模板渲染
- /*Bresenham画圆算法*/var arc = function(x0,y0,r){/*起点坐标x0,y
- 近又开始做网页,发现之前写的页面不规范,这次从头在来,希望一次比一次进步,先从CSS中的标点符号开始吧,这篇做为草稿已经放了很长时间了,还是
- 在我们使用一些数据的过程中,我们想要打乱数组内数据的顺序但不改变数据本身,可以通过改变索引值来实现,也就是将索引值重新随机排列,然后生成新的
- 方法一: $(document).on('touchmove',function(e){ e.preventDefault(
- SvnPeer.php <?php /** * * This class for execute the external progr
- 本文实例讲述了Python计时相关操作。分享给大家供大家参考,具体如下:内容目录:1. 时间戳2. 当前时间3. 时间差4. python中
- 本文实例介绍了如何使用ASP代码来读写注册表,呵呵厉害吧! 一个例子: <%Dim ReadComputerNam