> 最大 | 效率 | 壓縮 <

// 透過 91 個可列印 ASCII 字元的 Base91 編碼,在文字通道中取得更高的空間使用效率

[MAXIMUM]

更高壓縮效率

與 Base64 等常見編碼相比,Base91 的體積膨脹約為 23%,在同樣資料量下可以產生更短的字串。

[ASCII]

全為可列印字元

僅使用 91 個可列印 ASCII 字元,方便直接用於日誌、文字協定、終端輸出等需要人眼閱讀的情境。

[COMPACT]

節省頻寬與儲存

Base64 一般約 33% 的空間開銷,而 Base91 約為 23%,在大量 API 請求或集中式日誌中能長期累積可觀的節省。

>> 技術說明

Base91 的運作機制:

Base91 從 94 個可列印 ASCII 字元中擷取 91 個,並透過特殊演算法將每兩個輸出字元中塞入 13–14 位元,兼顧可讀性與壓縮效率。

範例:

"Hello" → >OwJh>A

為什麼選擇 Base91:

  • >希望在文字通道上盡量縮小編碼後的長度
  • >比 Base64(約 33% 開銷)更節省空間的替代方案
  • >使用可列印 ASCII 字元,方便直接出現在日誌與 CLI 中
  • >適合頻寬/儲存成本被嚴格控管的服務
  • >提升 API 回應與訊息隊列負載的資訊密度

>> 常見問題

什麼是 Base91 編碼?

Base91 是一種將二進位資料轉換為文字的編碼方案,使用 91 個可列印 ASCII 字元,在壓縮效率上優於 Base64 等傳統編碼。

什麼情況下應該使用 Base91?

當你需要在 HTTP、日誌、訊息佇列等文字通道中盡量壓縮傳輸資料的大小時,Base91 可以在保持可讀性的前提下,提供更小的輸出。

Base91 與 Base64 的實際差異有多大?

Base64 一般會比原始資料增加約 33% 的長度,而 Base91 約為 23%。在長期累積的流量或大型日誌中,這樣的差異能帶來明顯的空間節省。

Base91 的實作與支援度如何?

雖然沒有 Base64 普及,但已有多種語言的實作可用,並在許多需要高度壓縮文字表示的專案中被採用。

// 對比

名稱bits/charoverhead
Base164100%
Base32560%
Base64633.3%
Base856.4124.8%
Base916.5122.9%

// 程式碼範例

Alphabet  A-Z a-z 0-9 ! # $ % & ( ) * + , . / : ; < = > ? @ [ ] ^ _ ` { | } ~ "
Excluded  - \ '  and space           (3 of the 94 printable ASCII characters)
Bits      log2(91) = 6.508 bits/char  ->  8 / 6.508 = 1.229  (~23% overhead)
Python    pip install base91    base91.encode(b'Hello')
JS        npm i base91          base91.encode(...)

>> 更多問題

問:basE91 使用哪 91 個字元?

答:basE91 使用 94 個可列印 ASCII 字元(不含空格)中的 91 個:A–Z a–z 0–9 以及 ! # $ % & ( ) * + , . / : ; < = > ? @ [ ] ^ _ ` { | } ~ "。被排除的是 -、\ 和 '。雙引號 " 包含在內,在 JSON 或 shell 中需要跳脫。

問:為什麼 Base91 的開銷約為 23%?

答:共 91 個符號,每個字元攜帶 log₂(91) ≈ 6.508 位元。8 / 6.508 ≈ 1.229,即約 22.9% 的開銷。對比:Base32 為 60%,Base64 為 33%,Base85 為 25%。

問:什麼時候 Base91 比 Base64 更好?

答:只有在每個位元組都很寶貴時,例如嵌入式系統或受限協定。Base91 不是網址安全的,標準函式庫中沒有,支援也很少。日常使用 Base64 更合適。

其他語言