> 編碼 | 解碼 | ascii85 <

// Base85(ASCII85)編碼用於高效二進制資料表示

[高效]

高效率

比Base64更高效,相同資料產生約25%更小的輸出。

[安全]

本機處理

所有轉換都在您的瀏覽器中進行。您的資料永遠不會離開您的裝置。

[標準]

Adobe標準

使用標準ASCII85格式,帶<~ ~>分隔符,與PostScript相容。

>> 技術資訊

Base85工作原理:

Base85使用85個可列印ASCII字元編碼二進制資料。每4個位元組編碼為5個字元,使其比Base64更高效。

範例:

"你好" → <~87cURD]i~>

為什麼使用Base85:

  • >比Base64更高效(約小25%)
  • >PostScript和PDF檔案標準
  • >良好的壓縮比
  • >僅使用可列印ASCII字元
  • >包含零位元組的特殊'z'捷徑

>> 常見問題

什麼是Base85編碼?

Base85,也稱為ASCII85,是一種二進制到文字的編碼方案,使用85個可列印ASCII字元來表示二進制資料,比Base64更高效。

為什麼Base85比Base64更高效?

Base85將4位元組編碼為5字元(80%效率),而Base64將3位元組編碼為4字元(75%效率),使Base85大約提高25%的空間效率。

<~ ~>分隔符是什麼?

<~和~>分隔符是Adobe ASCII85標準的一部分,標記編碼資料的開始和結束。它們有助於在文件中識別Base85內容。

'z'字元代表什麼?

'z'字元是ASCII85中的特殊捷徑,表示四個連續的零位元組(\x00\x00\x00\x00),使編碼更高效。

// 速查表

輸入ASCII85Base64
Man 9jqo^TWFuIA==
sure.F*2M7/cc3VyZS4=
Hello87cURDZSGVsbG8=
\0\0\0\0zAAAAAA==

// 程式碼範例

Adobe     <~87cURDZ~>            (PostScript / PDF, z = four zero bytes)
Python    base64.a85encode(b'Hello')  ->  b'87cURDZ'
          base64.b85encode(b'Hello')  ->  b'NM&qnZv'   (RFC 1924 / Git alphabet)
Z85       ZeroMQ, safe to embed in source strings
Size      4 bytes -> 5 chars  (Base64: 4 bytes -> 5.33 chars)

>> 更多問題

問:ASCII85、Base85 和 Z85 有什麼區別?

答:三者數學原理相同(4 位元組 → 5 字元),字母表不同:ASCII85(Adobe,用於 PDF/PostScript)使用 ! 到 u,以 <~ … ~> 包裹,並用 z 表示 4 個零位元組;Base85(RFC 1924、Git)使用另一套字母表;Z85(ZeroMQ)的字母表便於安全嵌入原始碼。

問:Base85 與 Base64 相比體積如何?

答:4 位元組恰好得到 5 個字元,而 Base64 約為 5.33 個。開銷從 33% 降到 25%,相同資料的字元數約少 25%。

問:Base85 對網址安全嗎?

答:不安全。ASCII85 含有 & , ; ' " < > 等在網址、HTML 或 shell 中需要跳脫的字元。網址請用 Base64url,原始碼嵌入更適合 Z85。