Python 3.4 添加了a85encode
andb85encode
函数(及其对应的解码函数)。
两者有什么区别?文档提到“它们在细节上有所不同,例如用于编码的字符映射。” ,但这似乎不必要地模糊。
a85encode
使用字符映射:
!"#$%&'()*+,-./0123456789:;<=>?@
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
abcdefghijklmnopqrstu
withz
用作表示四个零字节的特例(而不是!!!!!
)。
b85encode
使用字符映射:
0123456789
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
!#$%&()*+-;<=>?@^_`{|}~
没有特殊的缩写。
如果您有选择,我建议您使用a85encode
. in 实现起来更容易(也更有效)C
,因为它的字符映射使用 ASCII 顺序的所有字符,并且在存储包含大量零的数据时效率稍高,这对于未压缩的二进制数据并不少见。