本节书摘来自异步社区《Python Cookbook(第3版)中文版》一书中的第6章,第6.10节,作者[美]David Beazley , Brian K.Jones,陈舸 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。
6.10 Base64编码和解码
6.10.1 问题
我们需要采用Base64编码来对二进制数据做编码解码操作。
6.10.2 解决方案
base64模块中有两个函数——b64encode()和b64decode()——它们正是我们所需要的。示例如下:
>>> # Some byte data
>>> s = b'hello'
>>> import base64
>>> # Encode as Base64
>>> a = base64.b64encode(s)
>>> a
b'aGVsbG8='
>>> # Decode from Base64
>>> base64.b64decode(a)
b'hello'
>>>
6.10.3 讨论
Base64编码只能用在面向字节的数据上,比如字节串和字节数组。此外,编码过程的输出总是一个字节串。如果将Base64编码的数据同Unicode文本混在一起,那么可能需要执行一个额外的解码步骤。示例如下:
>>> a = base64.b64encode(s).decode('ascii')
>>> a
'aGVsbG8='
>>>
当解码Base64数据时,字节串和Unicode文本字符串都可以作为输入。但是,Unicode字符串中只能包含ASCII字符才行。