Base100 編碼器是一種編碼工具,它會將 UTF-8 文字輸入的每個位元組對應到一個固定的 256 個表情符號字母表中的符號,產生一串連續的表情符號作為輸出。對應涵蓋從 0x00 到 0xFF 的每個可能的位元組值,這代表每個格式正確的 UTF-8 字元——包括 ASCII 字母、帶腔調的拉丁字母、CJK 表意文字,以及表情符號本身——都能被表示,而且原始位元組可以用對應的 Base100 解碼器無損地還原。這個格式有時被描述為「Base100 表情符號編碼」,因為它為 256 個位元組值中的每一個提供專屬的表情符號位置,就像 Base64 為 64 個值提供專屬的可列印字元一樣。

人們搜尋 Base100 編碼器的理由有幾個。有些人想在聊天應用程式中將一則隱藏訊息嵌入看起來像雜訊的表情符號字串中。有些人想要一個令人印象深刻、視覺上獨特的方式來為短字串——例如密碼、授權金鑰、UUID——產生指紋,讓它從周圍的文字中凸顯出來。一些開發者將 Base100 當作除錯輔助工具,用來確認字串在經過會去除或轉換一般字元的系統複製貼上後是否仍保持完整。這些用途都不需要安全性;Base100 是一種可逆的顯示編碼,不是加密,這個工具是用於休閒的格式化與解碼,而不是機密性。

base 100 encoder
base 100 encoder

Base100 實際上對應什麼

Base100 規格以確定性的順序為每個位元組值 0–255 指派一個表情符號。當你將 UTF-8 文字餵入編碼器時,工具首先會將每個 Unicode 字元轉換成構成它的 1 到 4 個 UTF-8 位元組,然後為每個位元組查詢對應的表情符號。像「A」這樣的單一 ASCII 字母會變成單一表情符號,因為它佔一個位元組。像「é」或「你」這樣的非 ASCII 字元,佔 2 或 3 個位元組,因此在輸出串流中會變成 2 或 3 個表情符號。像 😀 這樣的表情符號佔 4 個 UTF-8 位元組,會變成 4 個 Base100 符號。

完整的對應表是由原始的 Base100 專案所定義,在所有符合規範的工具中都一致。沒有字母表的選擇、沒有填充、沒有標頭;輸出就只是按輸入位元組相同順序排列的表情符號串流。正是這種簡單性讓這個格式能夠在一步驟內輕鬆驗證與解碼。

使用線上工具編碼 UTF-8 文字

產生 Base100 字串最快的方法是在瀏覽器中使用 Base100 編碼器 / 解碼器。這個工具在本地端執行,所以不會上傳任何東西,而且因為它在對應每個位元組之前先以 UTF-8 讀取輸入,所以能處理完整的 Unicode 範圍。

  1. 開啟 Base100 編碼器 / 解碼器頁面,選擇 Text to Base100 方向。
  2. 在輸入框中輸入或貼上你的 UTF-8 文字。純 ASCII、帶腔調的字元以及表情符號都可以直接接受,無需預處理。
  3. 點擊編碼按鈕。工具會將每個字元轉換成其 UTF-8 位元組,並為每個位元組查詢對應的 Base100 表情符號。
  4. 複製出現在輸出中的完整符號串。請不要在符號之間插入空格、換行或表情符號變體選擇器,因為解碼器會將每個表情符號視為一個位元組,並拒絕任何不在定義集合中的內容。
  5. 將未經修改的串流貼到你需要的地方——聊天訊息、程式碼註解、狀態欄位——並確信可以還原原始文字。

如果你只有少量的文字要轉換,整個過程只需幾秒鐘,無需任何設定。對於較大的區塊,從檔案貼上,讓頁面一次處理轉換。

將 Base100 串流解碼回文字

解碼是編碼的嚴格鏡像。工具會檢查串流中的每個表情符號,確認它屬於 Base100 字母表,然後將它轉換回對應的位元組值。產生的位元組會再被解讀為 UTF-8,以重建原始字元。

  1. 將 Base100 編碼器 / 解碼器切換到 Base100 to text 方向。
  2. 貼上你想要還原的符號串。保持與原始輸出完全相同的順序。
  3. 執行解碼器。每個被辨識的表情符號貢獻一個位元組,該位元組序列會以 UTF-8 進行驗證。
  4. 如果工具回報無效的符號,請找出有問題的表情符號並將其移除。常見的禍首是變體選擇器(例如看不見的 U+FE0F)、零寬接合符,或在複製貼上過程中誤加的空格。
  5. 當串流通過驗證後,讀取或複製解碼後的 UTF-8 文字。

嚴格的拒絕是一項特性,而不是限制。靜默替換會讓損壞的串流冒充成有效文字並隱藏錯誤;錯誤訊息則會明確指出串流被改動的位置,讓你從源頭修正。

Base100 串流無法解碼的常見原因

大多數解碼失敗來自一小組眾所周知的原因。第一個是變體表情符號序列:許多聊天客戶端和鍵盤會在表情符號後面加上一個看不見的變體選擇器,以強制彩色顯示,而這個選擇器不屬於 Base100 字母表。第二個是複製貼上的空白——在符號之間插入的空格、Tab 或換行——解碼器會將其標記為無效。第三個是混合串流,其中某些符號來自 Base100 集合,其他則來自視覺相似但不在對應表中的表情符號。

第四個較罕見的原因是部分截斷。即使串流末端只缺少一個表情符號,位元組數就不再對應有效的 UTF-8 序列,解碼器會拒絕最後一組位元組。在每種情況下的修正方法是回到源頭——必要時重新編碼原始文字——而不是手動修補串流,因為手動編輯很容易出錯。

情境處理方式
符號後附加變體選擇器從編碼器輸出重新複製,或在解碼前於文字編輯器中去除 U+FE0F
符號之間插入了空格或換行貼到純文字欄位並移除所有空白,然後再解碼
視覺相似但錯誤的表情符號從原始檔案重新編碼文字
截斷或缺少最後的表情符號從編碼器取得完整的串流再重試

Base100 與其他位元組對文字編碼的比較

Base100 與 Base64、Base32、Base58 屬於同一家族,但它以視覺效果換取精簡性。這些編碼方式都會將每個位元組或一組位元組轉成固定的可列印 ASCII 字元字母表;Base100 則將每個單一位元組轉成單一表情符號。表情符號字母表比 64 或 58 大得多,這就是為什麼可以做到一位元組對應一表情符號,但表情符號在視覺上也比 ASCII 字元寬,所以 Base100 字串在螢幕上佔用的水平空間比等效的 Base64 輸出要多。

編碼每位元組對應的符號數輸出字母表最適合的用途
Base643 位元組 → 4 符號A–Z、a–z、0–9、+、/在純文字通道中精簡傳輸二進位資料
Base325 位元組 → 8 符號A–Z、2–7不區分大小寫、由人工輸入的識別碼
Base58~1 位元組 → ~1.37 符號Bitcoin 字母表不含易混淆字元的短而易於複製的 ID
Base1001 位元組 → 1 符號256 個表情符號位元組串流的視覺獨特可逆顯示

如果你需要精簡、傳輸安全的編碼,Base64 編碼 / 解碼 仍然是標準選擇,並且原生支援完整的 UTF-8。如果是 Bitcoin 風格的短識別碼,Base58 編碼 / 解碼 是更好的工具。Base100 是當目標是讓位元組串流在視覺上無可錯認時才會選擇的選項——例如,在註解中將字串標記為「請勿編輯」,或在聊天回覆中嵌入可辨識的指紋。站上相關閱讀也涵蓋了 一鍵將 Base64 字串還原成圖片一鍵解碼 Base58 字串,如果你想比較工作流程的話。

限制與合理的期待

值得直接說明:Base100 是一種可逆的顯示轉換,既不是壓縮,也不是安全性。編碼後的表情符號串流在字元長度上大約與原始文字的位元組相同,但每個字元在螢幕上更寬,所以可見的行長會增加。任何知道 Base100 字母表的人都可以手動或用小腳本解碼串流,因此它絕對不能用來隱藏秘密——若需要保密,可參考 AES 線上加密,它以密碼衍生的金鑰提供真正的機密性。

Base100 同時假設底層文字是格式正確的 UTF-8。這個工具會拒絕解碼包含無效 UTF-8 位元組的串流,而不是靜默地替換它們,這讓來回轉換保持乾淨,但也表示你不能用 Base100 來修復損壞的檔案。如果你需要檢查或修復原始位元組,請從專門的 Hex 轉文字轉換器 開始,只有在位元組已知為有效後才再轉成 Base100。

綜合整理

最短的工作流程是:以「Text to Base100」方向使用 Base100 編碼器 / 解碼器 進行編碼,複製未經修改的表情符號串流,將它貼到需要的地方,之後再用「Base100 to text」方向還原。如果解碼失敗,原因幾乎總是額外的隱形字元、誤加的空格,或缺少最後一個符號——而工具會指向精確的位置,讓你修正。以這種方式使用,Base100 是一種輕量、可逆的方式,能用表情符號為位元組串流換上外觀,同時讓每個位元組都能完整還原。

如果你正在權衡選項,在瀏覽器中將摩斯密碼音訊轉成文字 對此有詳細介紹。