12

Python 3.4 添加了a85encodeandb85encode函数(及其对应的解码函数)。

两者有什么区别?文档提到“它们在细节上有所不同,例如用于编码的字符映射。” ,但这似乎不必要地模糊。

4

2 回答 2

12

a85encode使用字符映射:

!"#$%&'()*+,-./0123456789:;<=>?@
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
abcdefghijklmnopqrstu

withz用作表示四个零字节的特例(而不是!!!!!)。

b85encode使用字符映射:

0123456789
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
!#$%&()*+-;<=>?@^_`{|}~

没有特殊的缩写。


如果您有选择,我建议您使用a85encode. in 实现起来更容易(也更有效)C,因为它的字符映射使用 ASCII 顺序的所有字符,并且在存储包含大量零的数据时效率稍高,这对于未压缩的二进制数据并不少见。

于 2016-01-23T23:48:23.357 回答
9

Ascii85是 Base85 的前身;两者之间的主要区别实际上是使用的字符集。

Ascii85使用字符集:

ASCII 33 ("!") to ASCII 117 ("u") 

Base85使用字符集:

0–9, A–Z, a–z, !#$%&()*+-;<=>?@^_`{|}~

这些字符特别不包含在 Base85 中

"',./:[]\\

a85encodeb85encode分别对Ascii85Base85进行编码/解码。

于 2016-01-24T00:29:01.000 回答