Base100 透過將每個 UTF-8 位元組 0–255 對應到 U+1F3F7 到 U+1F4F6 之間的恰好一個代碼點來編碼文字,而在 Android 上,這個對應過程完全在您手機的瀏覽器分頁內執行——不需要 APK、不需要 Play Store 安裝,也不需要終端機模擬器。由於 Base100 編碼器 / 解碼器在 JavaScript 中於本機端運作,您的文字從不離開裝置:轉換發生在您開啟該網頁的同一個 Chrome、Firefox、Edge 或 Samsung Internet 分頁中。這種以瀏覽器為基礎的做法,也是為什麼只要瀏覽器支援現代 Unicode 與 UTF-8,Base100 在 Samsung Galaxy、Pixel,或是執行較舊作業系統的較低階 Android 平板上,都能以相同方式運作。這 256 個符號位於輔助多語言平面上,緊接在 U+1F3F7 之上,這表示任何支援表情符號的 Android 鍵盤,都已經能在應用程式、備忘錄和聊天視窗中呈現輸出串流。本指南將逐步說明在 Android 上對 Base100 進行編碼與解碼的確切行動工作流程、當鍵盤或聊天應用程式插入變體選擇器時可能發生的問題,以及 Base100 在哪些情況下不再是合適的工具。

為什麼 Android 是 Base100 的理想平台
Base100 對應是由 Adam Niederer 提出,以單一表情符號範圍的 Unicode 符號來表示每個輸入位元組。這個選擇在行動裝置上會帶來實際的影響。Android 鍵盤已經過調整,能夠呈現表情符號,因此輸出串流在通訊應用程式、備忘錄、Gmail 草稿和剪貼簿管理工具中都能保持視覺上的一致——前提是目的端應用程式也以現代 Unicode 為目標。由於整個轉換過程透過 JavaScript 在瀏覽器分頁中進行,同一個 Base100 編碼器 / 解碼器 網頁可以在 Android 9、10、11、12、13、14 和 15 上,於 Chrome 和 Firefox 中,以及在平板與手機上正常運作。不需要離線二進位檔、不需要 Termux 工作階段,也不需要取得 root 權限。
在本機端執行對應,也意味著輸入資料從不傳送到伺服器。對於希望在 Android 上透過聊天應用程式分享小型二進位資料(例如 Wi-Fi 密碼提示、短 token、CTF 解題旗標)的人來說,這正是實務上的最佳平衡點。該網頁接受 UTF-8 文字,使用規則 code_point = U+1F3F7 + byte 逐位元組進行轉換,並產生一個可以貼到 WhatsApp、Signal、Telegram、Discord 或任何其他支援表情符號之應用程式的串流。
如何在 Android 上對文字進行 Base100 編碼
在手機上進行編碼,遵循與桌上型電腦相同的三個步驟。行動端的主要差異在於複製符號後會發生什麼,而不是工具本身的運作方式。
- 在您的 Android 瀏器中開啟 Base100 編碼器 / 解碼器(Chrome、Firefox 或 Samsung Internet 皆可),然後點選 Text to Base100。
- 在輸入框中輸入或貼上您的 UTF-8 文字。對於多行文字,請將其作為單一區塊貼上——編碼器對每個位元組的處理方式相同,且不會插入任何分隔符號。
- 點選編碼動作,並等待符號串流出現。輸入中的每個 UTF-8 位元組會產生剛好一個符號,因此純 ASCII 文字每個字元會產生一個表情符號,而帶有變音符號或 CJK 的文字,則會在每個可見字元上產生更多符號。
- 長按輸出內容,並選擇 複製。在此階段請避免直接點選 分享 到聊天應用程式,因為某些分享目標會悄悄地在表情符號外觀的代碼點上加入變體選擇器 (U+FE0F),而嚴格的解碼過程會因此拒絕該串流。
- 將該串流貼到您的目標 Android 應用程式中——無論是備忘錄、Gmail、聊天對話串或檔案——然後照常送出或儲存。
如何在 Android 上將 Base100 符號解碼回文字
解碼會反轉相同的公式,速度同樣很快。在 Base100 編碼器 / 解碼器網頁上開啟 Base100 to text 模式,貼上您收到的符號串流,然後執行解碼動作。該網頁會逐一檢查貼上內容中的每個 Unicode 代碼點,確認每個代碼點都嚴格落在 U+1F3F7 到 U+1F4F6 之間,從每個代碼點中減去 U+1F3F7 以回復位元組值,並對產生的位元組序列執行嚴格的 UTF-8 解碼器。如果輸入中含有變體選擇器、空格、換行、範圍外的普通表情符號,或任何無效的 UTF-8 位元組序列,該工具會回報錯誤,而不是悄悄插入替換字元。這種嚴格行為正是您在手機上所需要的——因為一個不小心混入的不可見字元,就足以破壞整個來回轉換。
舉例來說,兩個字母的字串 Hi 會編碼為位元組序列 0x48 0x69。在每個位元組上加上 U+1F3F7,會產生符號 U+1F43F 與 U+1F460。將這兩個符號貼回解碼器,必須得出原本的 Hi,不帶有變體選擇器,也不帶有結尾的換行符。如果第一次嘗試的結果看起來不正確,請先貼到純文字的備忘錄文件中以去除格式,然後再從備忘錄複製到解碼器中。
在 Android 上什麼情況會破壞串流
有三種行動裝置特有的失敗模式會反覆出現。第一種是變體選擇器:許多 Android 鍵盤和聊天用戶端會自動在表情符號外觀的代碼點上附加 U+FE0F,這會將一個有效的 Base100 符號變成一個由兩個代碼點組成的序列,使得嚴格的解碼器拒絕它。第二種是不可見的空白字元:在複製較長的表情符號序列時,聊天應用程式偶爾會插入零寬空格、不換行空格或段落標記,特別是在輸入框中發生換行時。第三種是替換:某些應用程式或較舊的瀏器無法呈現 U+1F400–U+1F4F0 範圍內的代碼點,並在複製完成前,將它們替換為佔位方框或「缺少字形」指示符號。在每一種情況下,視覺上看起來都接近正確,但底層的代碼點已經改變,嚴格的解碼就會失敗。解決方法始終相同——保留完全一致的代碼點,理想的做法是透過手機上的純文字編輯器進行複製,而不是透過帶有樣式的聊天撰寫視窗。
該網頁在輸入邊界處透過以下方式防範這些問題:以 Unicode 代碼點而非 UTF-16 代碼單位來讀取符號、執行嚴格的 UTF-8 驗證,並拒絕空格、換行、變體選擇器,以及任何落在 256 個符號範圍之外的表情符號。空白的輸入也會被拒絕,因此在小尺寸的手機螢幕上,意外貼上空白的選取內容,絕不會產生令人困惑的「成功」訊息。
在行動裝置上的 Base100 與其他編碼方式
Base100 是您可以在 Android 瀏覽器中執行的數種位元組對符號編碼之一。下表根據在手機上重要的幾項標準進行比較:符號集是否能在任何通訊應用程式中呈現、結果的精簡程度,以及輸出對人類的可讀性如何。確切的比率取決於輸入文字,因此下表描述的是方向與大致量級,而不是精確的比率。
| 編碼方式 | 符號集 | 是否能在 Android 聊天應用程式中呈現 | 對人類是否看起來可讀 | 內建錯誤偵測 |
|---|---|---|---|---|
| Base100 | U+1F3F7–U+1F4F6 (表情符號範圍符號) | 通常可以,在現代 Android 上 | 否 — 一整串表情符號 | 無 |
| Base64 | A–Z、a–z、0–9、+、/、= | 可以,純 ASCII | 否 | 無 |
| 十六進位 | 0–9、A–F | 可以,純 ASCII | 部分 — 每個位元組兩個字元 | 無 |
| Base58 | 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz | 可以,純 ASCII | 否 | 選擇性總和檢查碼 |
| Base32 | A–Z、2–7、= | 可以,純 ASCII | 否 | 無 |
如果您在 Android 上的目的端應用程式會去除表情符號,或替換 BMP 之外的代碼點,請改用 Base64 編碼 / 解碼、Base58 編碼 / 解碼,或 十六進位轉文字轉換器。這三種方式都會產生純 ASCII 輸出,能夠在 Android 上的任何通訊用戶端和任何剪貼簿管理工具中存活下來。
限制與 Base100 不適合的用途
該網頁在任一方向上都將上限設為 500,000 位元組或符號,以避免意外貼上巨型記錄檔而凍結您手機的覽器。超過該上限時,輸入會被拒絕並顯示明確的錯誤訊息,而絕不會悄悄截斷。編碼器不會加入填補、長度標記、總和檢查碼或框定字元,而解碼器也不會進行正規化或悄悄替換字元。在 UTF-8 行為方面,該工具遵循每個現代瀏器所使用的 WHATWG 編碼標準,因此在 Android Chrome 上能解碼的序列,在桌面版 Chrome、Firefox 或 Safari 上也能解碼,而不會出現任何行動裝置特有的怪現象。
Base100 是一種編碼方式,而不是加密。任何擁有這份對應表的人——而這份對應表記載於 Adam Niederer 的原始 Base100 專案 中——都能還原原始文字。它沒有內建總和檢查碼,因此即使一個符號不小心被改動,仍然會產生不同的位元組,但解碼時不會發出警告。請勿在 Android 或其他地方使用 Base100 來保護密碼、個人資料、token、私鑰或任何機密資料。在這些情況下,請使用經過審查的加密方式搭配已認證的格式,例如 AES-GCM,或使用密碼管理工具,而不是可逆的表情符號對應。若要在 Android 上以快速、且在裝置端的方式對任何 UTF-8 字串進行編碼或解碼,Base100 編碼器 / 解碼器會留在您的瀏覽器分頁中,絕不上傳您的輸入。
延伸閱讀:BCC 總和檢查碼範例:逐步 XOR-8 演練。