字符串方法0x01 -- 编码

转载须注明出处:简书@Orca_J35 | GitHub@orca-j35

字符串不仅支持所有通用序列操作,还实现了很多附件方法。
我会以『字符串方法』为标题,分几篇笔记逐一介绍这些方法。
我会在这仓库中持续更新笔记:https://github.com/orca-j35/python_notes

encode

🔨 str.encode(encoding="utf-8", errors="strict")

Return an encoded version of the string as a bytes object. Default encoding is 'utf-8'. errors may be given to set a different error handling scheme. The default for errors is 'strict', meaning that encoding errors raise a UnicodeError. Other possible values are 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' and any other name registered via codecs.register_error(), see section Error Handlers. For a list of possible encodings, see section Standard Encodings.

# 对字符串进行编码
field = '鲸'
assert field.encode() == b'\xe9\xb2\xb8'
assert field.encode('ascii', 'ignore') == b''
assert field.encode('ascii', 'replace') == b'?'
# 40120是'鲸'的码点值(10进制)
assert field.encode('ascii', 'xmlcharrefreplace') == b'鲸'
# u9cb8是'鲸'的码点值(16进制)
assert field.encode('ascii', 'backslashreplace') == b'\\u9cb8'
field.encode('ascii') # 抛出 UnicodeEncodeError 异常

Tips: 在 Python 文档中,"编码(encoding)"是指将 Unicode 字符串转换为字节序列的规则,也就是说"编码"包含了从"抽象字符序列"到"字节序列"的全部过程;反之,"解码"则包含了从"字节序列"到"抽象字符序列"的全部过程。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容