Python 3 – 字符串 encode() 方法

Python 3 – 字符串 encode() 方法

Python 3中,通过 encode() 方法可以将字符串转换为指定编码的字节序列。Python 3默认使用UTF-8编码。encode() 方法的语法如下:

str.encode(encoding='UTF-8',errors='strict')

其中,encoding 表示要使用的编码类型,errors 表示对编码错误的处理方式。

示例

假设我们有一个字符串:

s = '你好,世界!'

如果我们想要将这个字符串以UTF-8编码格式转换为字节序列,可以使用以下代码:

s_utf8 = s.encode('utf-8')
print(s_utf8)
# b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c\xef\xbc\x81'

在这个例子中,我们使用 UTF-8 作为编码格式,并将编码后的结果赋值给变量 s_utf8。然后我们打印了 s_utf8,注意到字符串前加了一个 b,这表示该字符串是一个字节序列。

我们还可以使用其他的编码格式,比如 GBK

s_gbk = s.encode('gbk')
print(s_gbk)
# b'\xc4\xe3\xba\xc3\xa3\xac\xca\xda\xcd\xf8\xa3\xac'

注意到编码后的结果与使用 UTF-8 编码的结果是不同的。

如果我们使用一个不存在的编码格式,Python 会抛出一个异常:

s.encode('yzf-encoding')
# LookupError: unknown encoding: yzf-encoding

我们也可以指定对编码错误的处理方式。例如,如果我们使用GB2312格式对UTF-8编码的字符串进行编码时,会出现编码错误。我们可以指定处理方式为忽略错误:

s_utf8 = '你好,世界!'.encode('utf-8')
s_gb2312 = s_utf8.decode('utf-8').encode('gb2312', errors='ignore')
print(s_gb2312)
# b'\xc4\xe3\xba\xc3\xa3\xac'

在这个例子中,我们将 UTF-8 编码的字符串先进行解码,然后再以 GB2312 格式进行编码。由于 GB2312 格式不能处理一些 UTF-8 格式的字符,因此会出现编码错误。我们指定将这些错误字符忽略,在编码时只处理正确的字符。

结论

在Python 3中,通过 encode() 方法可以将字符串转换为指定编码的字节序列。Python 3默认使用UTF-8编码。encode() 方法可以指定编码格式和编码错误的处理方式。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程