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