12

Python 3.4 ではa85encodeandb85encode関数 (および対応するデコード関数) が追加されました。

2つの違いは何ですか?ドキュメントには、「エンコーディングに使用される文字マップなどの詳細が異なります」と記載されています。、しかし、これは不必要に曖昧に思えます。

4

2 に答える 2

12

a85encode文字マッピングを使用します。

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

withzは、4 つのゼロ バイト (の代わりに) を表す特殊なケースとして使用されます!!!!!

b85encode文字マッピングを使用します。

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

特別な略語はありません。


選択肢があれば、 を使用することをお勧めしますa85encode。文字マッピングはすべての文字を ASCII 順序で使用するため、で実装するのは少し簡単 (かつ効率的) でCあり、圧縮されていないバイナリ データでは一般的ではない、多数のゼロを含むデータを格納する際にわずかに効率的です。

于 2016-01-23T23:48:23.357 に答える
9

Ascii85Base85の前身です。この 2 つの主な違いは、実際には使用される文字セットです。

Ascii85次の文字セットを使用します。

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

Base85次の文字セットを使用します。

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

これらの文字は特に Base85 には含まれていません:

"',./:[]\\

a85encodeb85encodeは、それぞれAscii85Base85をエンコード/デコードします。

于 2016-01-24T00:29:01.000 に答える