Base100 編碼會將每個 UTF-8 位元組轉換為一個介於 U+1F3F7 到 U+1F4F6 之間的 Unicode 碼點,使用公式 碼點 = U+1F3F7 + 位元組。Base100 編碼器 / 解碼器在瀏覽器中套用此對映:選擇轉換方向、輸入內容、執行轉換,然後複製結果,無需建立帳號或上傳文字。這是免費、無註冊 Base100 編碼任務的直接解決方案。ASCII 文字通常會讓每個字元變成一個表情符號範圍的符號,因為每個 ASCII 字元佔用一個 UTF-8 位元組。含腔調字母、CJK 字元或輸入的表情符號可能需要多個位元組,因此輸出可能包含多個符號。每個位元組都會被精確對映;Base100 不加入填充、分隔符、校驗碼、壓縮或長度標記。為了讓輸出保持可攜性,請複製精確的符號串流,不要加入空格、換行、標點或變體選擇器。解碼器僅接受原本 256 個符號範圍內的碼點,然後將還原的位元組驗證為 UTF-8。它會拒絕無效的符號和格式錯誤的 UTF-8,而不是靜默加入替換字元。任何一個方向都限制在 500,000 位元組或符號以內,且不接受空輸入。相同的位元組公式讓這種格式具有可逆性,但它並不提供機密性、認證或竄改偵測。

選擇轉換方向
正確的方向完全取決於你已有的資料。當你想將 UTF-8 文字轉換成一串表情符號範圍的符號時,請使用 Base100 編碼器 / 解碼器。當你擁有原始且未經修改的 Base100 串流,並需要還原文字時,請使用其解碼器。此工具不會將文字翻譯成視覺化的表情符號意義;它是依照固定的碼點公式轉換底層的 UTF-8 位元組。
| 方向 | 輸入 | 輸出 | 驗證 |
|---|---|---|---|
| 文字轉 Base100 | UTF-8 文字 | 每個輸入位元組對映成一個符號 | 空輸入會被拒絕 |
| Base100 轉文字 | 有效且未經修改的 Base100 符號 | 從位元組還原的文字 | 無效的符號和無效的 UTF-8 序列會被拒絕 |
進行編碼時,只有在起始值為文字時才選擇「文字轉 Base100」。進行解碼時,只有在每個貼上的字元都是允許的 Base100 碼點時,才選擇「Base100 轉文字」。選擇錯誤的方向並不會從語意上重新解讀輸入;它會對你提供的資料套用相反的位元組轉換。
無需建立帳號即可編碼文字
立即可用的線上工作流程包括:選擇編碼器、提供 UTF-8 文字,並完全依照產生的符號加以保留。
- 開啟 Base100 工具。此瀏覽器型轉換不需要註冊或建立帳號。
- 選擇「文字轉 Base100」。這會告訴頁面:每個輸入位元組都應獲得一個 Base100 碼點。
- 輸入 UTF-8 文字並執行編碼器。此工具會將字串轉為 UTF-8,並將每個產生的位元組從 0 對映到 255。
- 複製結果。保留精確的符號串流,不要插入空格、換行、分隔符、標點或表情符號變體選擇器。
- 將複製的串流作為 Base100 資料使用。在解碼或傳送至其他系統之前,不要重新格式化它。
一個 UTF-8 位元組必定產生一個符號,但一個可見字元並不一定等於一個位元組。一般的 ASCII 文字通常每個字元佔一個位元組,因此其符號數通常等於字元數。含腔調字母、CJK 字元和表情符號通常需要多個 UTF-8 位元組,因此會展開成多個 Base100 符號。輸出是精確的位元組表示法,而不是人類語言的表情符號翻譯。
Base100 沒有填充、校驗碼、長度標記、壓縮或分隔符需要複製。因此,純粹的串流比較容易正確處理:複製產生的結果,而不要試圖改善其格式。請將完整輸入控制在 500,000 個 UTF-8 位元組以內,也不要期望當輸入過大時輸出會被靜默縮短。
了解位元組如何變成 Base100 符號
對於以 b 表示的輸入位元組,編碼器會計算 U+1F3F7 + b。此對映恰好佔據從 U+1F3F7 到 U+1F4F6 的完整含端點範圍。位元組 0 對映到第一個碼點 U+1F3F7,而位元組 255 則對映到最後一個碼點 U+1F4F6。
以一個數值為例,位元組 1 遵循相同的規則:U+1F3F7 + 1 = U+1F3F8。其結果就是指派給位元組 1 的碼點。由於表情符號的呈現方式會因瀏覽器、字型、作業系統和即時通訊應用程式而異,因此無需識別特定的視覺字符。
此對映遵循 Adam Niederer 的 Base100 專案,而文字邊界則遵循 WHATWG 編碼標準 所定義的 UTF-8 行為。這兩個角色是分開的:前者提供位元組公式,後者定義瀏覽器如何將原始文字與 UTF-8 進行雙向轉換。
| 輸入類型 | UTF-8 行為 | 預期的 Base100 對應關係 |
|---|---|---|
| ASCII 字元 | 使用一個 UTF-8 位元組 | 產生一個 Base100 符號 |
| 含腔調字元 | 可能使用多個位元組 | 通常產生多個符號 |
| CJK 字元或表情符號 | 通常使用數個位元組 | 產生相應更長的符號串流 |
因此,Base100 符號的數量衡量的是編碼後的位元組。它衡量的不是使用者感知字元、字素叢集、字詞,或原始 JavaScript 字串長度。這個區別在檢查輸出長度,或估算多語言訊息會膨脹多少時很重要。
碼點的外觀並非轉換契約的一部分。某些對映後的碼點可能會顯示為彩色影像、單色字符、方框或意外的象形文字。這種視覺上的變化並不會改變符合規範字串中的數學對映關係。然而,透過會替換、移除或裝飾碼點的軟體進行複製,可能會使接收到的資料與原始串流不同。
解碼已複製的符號串流
嚴格的解碼會反轉編碼器的位元組對映,但僅在貼上的串流仍位於精確的 Base100 範圍內,並且這些位元組構成有效的 UTF-8 時才會成功。
- 選擇「Base100 轉文字」。這會選取反向的轉換方向。
- 貼上有效的串流。完全依照複製的內容保留每個碼點;不要加入分隔符或格式。
- 執行解碼器。它讀取的是 Unicode 碼點而非 UTF-16 碼元,並從每個允許的符號中減去 U+1F3F7 以還原其位元組值。
- 複製還原後的文字。請僅在解碼器成功完成後再使用其結果。
每個解碼後的符號都必須落在 U+1F3F7 到 U+1F4F6 之間。該範圍之外的空格、換行、標點、變體選擇器和表情符號會被拒絕,而不是被忽略。在收集到位元組後,此工具會執行嚴格的 UTF-8 驗證。如果產生的序列格式錯誤,它會回報錯誤,而不是插入替換字元,並假裝輸出是精確的。
即使是視覺上相似的貼上內容,在經過其他編輯器、即時通訊應用程式、鍵盤或正規化管線插入了變體選擇器、變更了碼點,或加入了框定字元後,仍可能解碼失敗。原始的 Base100 格式沒有可忽略的分隔符。對於表情符號呈現行為不同的應用程式之間,保持符號串流不變尤其重要。
Base100 也沒有校驗碼。在允許範圍內變更一個符號會改變一個位元組,並可能解碼成不同但仍然有效的文字,然而解碼器本身沒有內建方式能證明該變更是意外的。當互操作性或位元組層級的精確度很重要時,請保留精確的碼點。
在限制範圍內運作並選擇正確用途
此頁面將任一方向限制在 500,000 位元組或符號,以降低意外貼上大量內容導致瀏覽器卡死的風險。編碼時,請計算原始文字中的 UTF-8 位元組數。解碼時,請計算貼上串流中的 Base100 符號數。一個 Unicode 字元可能產生數個位元組和數個符號,因此依可見字元數來估算並不可靠。輸出絕不會被靜默截斷;請將完整輸入控制在所述邊界內,而不是依賴自動縮短。
當你明確需要獨特的表情符號範圍位元組表示法,或想測試 Base100 工作流程時,Base100 很實用。它不是加密、雜湊、簽章、認證、壓縮、隱寫術,也不是秘密的表情符號語言。任何知道此對映的人都能還原文字。請勿使用它來保護密碼、個人資料、私密金鑰、代權杖或機密訊息;當需要機密性或竄改偵測時,請使用經審核的加密和認證格式。
如果目的地僅接受 ASCII 傳輸,Base64、base64url、Base32、Base58 或十六進位通常相容性更高。當需求本身就是保留原始符號對映時,請選擇 Base100。若要進行免費、無註冊的轉換,請開啟頁面、選擇正確方向、執行轉換,並複製未經修改的結果。
若你在權衡各種選項,Gzcompress 線上免費,無需註冊:在瀏覽器中即可使用對此有詳細說明。
若你在權衡各種選項,Base100 編碼大量文字:UTF-8 膨脹與限制對此有詳細說明。