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() 方法可以指定编码格式和编码错误的处理方式。