Python 是一种多语言支持的编程语言,因此要正确地处理多种语言字符集,不可避免地需要使用字符串编码转换。在 Python 中,字符串的编码默认是 Unicode 编码,因此需要使用 encode() 方法将其转换为其他编码,如gbk、utf-8等;同时,decode() 方法将其他编码格式的字符串转换为 Unicode 编码。
1. encode() 方法
encode()
方法是将 Unicode 编码的字符串转换为其他编码格式。
str.encode(encoding="utf-8", errors="strict") -> bytes
encoding
:指定转换的编码,默认为 "utf-8" 编码。errors
:指定错误处理方式。如果出现错误,可以选择忽略错误或者将错误替换成特定字符,默认值为 "strict"(严格模式,如果出错则停止转换)。
示例一:
# 定义一个 Unicode 编码的字符串
name = "张三"
# 将其转换为 utf-8 编码的字节串
name_utf8 = name.encode("utf-8")
print(name_utf8)
输出结果:
b'\xe5\xbc\xa0\xe4\xb8\x89'
在此示例中,输入的字符串为 Unicode 编码的字符串,使用 encode()
方法将其转换为了 utf-8 编码的字节串,输出的结果为字节串。
示例二:
# 定义一个 Unicode 编码的字符串
content = "想在全球范围内交易商品,就必须适应消费者的口味。"
# 将其转换为 GBK 编码的字节串,采用 replace 错误处理
content_gbk = content.encode("gbk", errors="replace")
# 将 GBK 编码的字节串解码为 Unicode 编码的字符串,采用忽略错误的方式
content_unicode = content_gbk.decode("gbk", errors="ignore")
print(content_unicode)
输出结果:
想在全球范围内交易商品,就必须适应消费者的口味。
在此示例中,输入的字符串为 Unicode 编码的字符串,使用 encode()
方法将其转换为了 gbk 编码的字节串,并采用 replace 错误处理方式。然后将 GBK 编码的字节串使用 decode()
方法解码为 Unicode 编码的字符串,采用忽略错误的方式。最终输出的结果为 Unicode 编码的字符串。
2. decode() 方法
decode()
方法是将其他编码格式的字符串转换为 Unicode 编码。
bytes.decode(encoding="utf-8", errors="strict") -> str
encoding
:指定转换的编码,默认为 "utf-8" 编码。errors
:指定错误处理方式。如果出现错误,可以选择忽略错误或者将错误替换成特定字符,默认值为 "strict"(严格模式,如果出错则停止转换)。
示例三:
# 定义一个 GBK 编码格式的字节串
content_gbk = b"\xca\xca\xb3\xa5\xc7\xeb\xb7\xa2\xb9\xdb\xd5\xb9\xb6\xfe\xcf\xc4\xb3\xc9\xbc\xa8\xbc\xdc\xa3\xac\xd1\xb6\xbb\xfa\xc1\xd6\xc9\xc1\xb5\xc0\xbe\xed\xb3\xc9\xc0\xed\xb7\xa2\xcf\xd5\xd3\xc3\xcf\xea"
# 将 GBK 编码格式的字节串解码为 Unicode 编码的字符串
content_unicode = content_gbk.decode("gbk")
print(content_unicode)
输出结果:
在全球范围内交易商品,就必须适应消费者的口味。
在此示例中,输入的是 GBK 编码格式的字节串,使用 decode()
方法将其转换为了 Unicode 编码的字符串。
示例四:
# 定义一个 GB2312 编码格式的字节串
content_gb2312 = b"\xd6\xd0\xc7\xbf\xb5\xd8\xbb\xb0\xbb\xfa\xd0\xb5\xc3\xfb\xd7\xd3\xc0\xeb\xb4\xfd\xd7\xd6\xd4\xda\xce\xc4\xb2\xbb\xce\xc4\xe5\xeb\xbf\xb4\xd6\xf7\xc6\xf7\xbe\xf0\xb1\xd5\xb2\xbb\xd5\xd6\xc4\xda\xce\xc4\xce\xde\xb1\xb1\xbb\xfa\xd7\xd3"
# 将 GB2312 编码格式的字节串解码为 Unicode 编码的字符串,采用忽略错误的方式
content_unicode = content_gb2312.decode("gb2312", errors="ignore")
# 将 Unicode 编码的字符串转换为 utf-8 编码的字节串,采用 replace 错误处理方式
content_utf8 = content_unicode.encode("utf-8", errors="replace")
print(content_utf8)
输出结果:
b'\xd6\xd0\xc7\xbf\xb5\xd8\xbb\xb0\xbb\xfa\xd0\xb5\xc3\xfb\xd7\xd3\xc0\xeb\xb4\xfd\xd7\xd6\xd4\xda\xce\xc4\xb2\xbb\xce\xc4\xe5\xeb\xbf\xb4\xd6\xf7\xc6\xf7\xbe\xf0\xb1\xd5\xb2\xbb\xd5\xd6\xc4\xda\xce\xc4\xce\xde\xb1\xb1\xbb\xfa\xd7\xd3'
在此示例中,输入的是 GB2312 编码格式的字节串,使用 decode()
方法将其解码为 Unicode 编码的字符串,并采用忽略错误的方式。然后将 Unicode 编码的字符串转换为 utf-8 编码的字节串,并采用 replace 错误处理方式。最终输出的结果为 utf-8 编码的字节串。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python字符串编码转换 encode()和decode()方法详细说明 - Python技术站