a85encode 和 b85encode 有什么区别?
What is the difference between a85encode and b85encode?
Python 3.4 添加了a85encode
and b85encode
函数(及其对应的解码函数)。
两者有什么区别?文档提到 "They differ by details such as the character map used for encoding.",但这似乎不必要地含糊不清。
a85encode
使用字符映射:
!"#$%&'()*+,-./0123456789:;<=>?@
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
abcdefghijklmnopqrstu
其中 z
用作表示四个零字节的特殊情况(而不是 !!!!!
)。
b85encode
使用字符映射:
0123456789
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
!#$%&()*+-;<=>?@^_`{|}~
没有特殊缩写。
如果您有选择,我建议您使用a85encode
。在 C
中实现起来更容易(也更有效),因为它的字符映射使用 ASCII 顺序的所有字符,并且在存储包含大量零的数据时效率稍微高一些,这对于未压缩的二进制文件并不罕见数据。
Ascii85是Base85的前身;两者之间的主要区别是 in-fact 使用的字符集。
Ascii85
使用字符集:
ASCII 33 ("!") to ASCII 117 ("u")
Base85
使用字符集:
0–9, A–Z, a–z, !#$%&()*+-;<=>?@^_`{|}~
Base85明确不包含这些字符:
"',./:[]\
a85encode 和 b85encode encode/decode Ascii85 和 分别为Base85.
Python 3.4 添加了a85encode
and b85encode
函数(及其对应的解码函数)。
两者有什么区别?文档提到 "They differ by details such as the character map used for encoding.",但这似乎不必要地含糊不清。
a85encode
使用字符映射:
!"#$%&'()*+,-./0123456789:;<=>?@
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
abcdefghijklmnopqrstu
其中 z
用作表示四个零字节的特殊情况(而不是 !!!!!
)。
b85encode
使用字符映射:
0123456789
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
!#$%&()*+-;<=>?@^_`{|}~
没有特殊缩写。
如果您有选择,我建议您使用a85encode
。在 C
中实现起来更容易(也更有效),因为它的字符映射使用 ASCII 顺序的所有字符,并且在存储包含大量零的数据时效率稍微高一些,这对于未压缩的二进制文件并不罕见数据。
Ascii85是Base85的前身;两者之间的主要区别是 in-fact 使用的字符集。
Ascii85
使用字符集:
ASCII 33 ("!") to ASCII 117 ("u")
Base85
使用字符集:
0–9, A–Z, a–z, !#$%&()*+-;<=>?@^_`{|}~
Base85明确不包含这些字符:
"',./:[]\
a85encode 和 b85encode encode/decode Ascii85 和 分别为Base85.