跳至主要內容
Lizely

Base100 編碼 / 解碼器

將 UTF-8 文字編碼為原始 Base100 表情符對映,或嚴格解碼 Base100 符號回復為有效的 UTF-8 文字。

隱私權:你的檔案不會離開裝置,所有處理均在瀏覽器本機完成。

使用方式

  1. 1.選擇文字以 Base100 編碼,輸入 UTF-8 文字,並執行編碼器以將每個位元組對應至一個 Base100 符號。
  2. 2.複製精確的符號序列,勿新增空格、換行或變體選擇器。
  3. 3.選擇 Base100 以文字,貼上一個未修改的有效序列,並解碼它;無效符號或無效 UTF-8 位元組將被拒絕。

關於Base100 編碼 / 解碼器

Base100 編碼器和解碼器將文字位元組轉換為獨特的表情符範圍 Unicode 符號流,並反向將有效符號流轉換迴文字。選擇操作,輸入文字或 Base100 符號,執行轉換,並複製結果。此實現使用 Adam Niederer 的 Base100 專案所引入的對映。所有編碼和解碼都在瀏覽器中進行,不會上傳輸入。

Base100 運作於位元組,而非單字、意義或視覺表情符名稱。編碼首先將輸入字串轉換為 UTF-8。每個來自 0 到 255 的結果位元組會透過將位元組值加到 U+1F3F7 來對應至單一 Unicode 碼點。位元組零變為 U+1F3F7,位元組一變為 U+1F3F8,位元組 255 變為 U+1F4F6。沒有填充、分隔符、校驗和、壓縮、長度標記或語義翻譯。

因為對映是一對一的字元對位元組,普通 ASCII 文字會產生每個字元對應一個 Base100 符號。非 ASCII 文字通常會產生更多符號,因為一個 Unicode 字元可能需要幾個 UTF-8 位元組。例如,原輸入中的重音字母、CJK 字元和表情符號會根據其 UTF-8 表示方式進行擴充。因此,輸出符號數量實際上是測量編碼後的位元組數,而非使用者感知的字元、圖形叢集、單字或原始 JavaScript 字串長度。

解碼是以 Unicode 字元點讀取輸入,而非 UTF-16 字元單位。每個符號必須落在 U+1F3F7 到 U+1F4F6 的精確包含範圍內。其位元組值是透過減去 U+1F3F7 得出。所有位元組收集完後,嚴格的 UTF-8 解碼器會重新組合成文字。若位元組並非有效的 UTF-8 序列,工具會報告錯誤,而非靜默插入取代字元並假裝結果準確。

解碼器刻意拒絕空格、換行、標點符號、變體選擇器與超出 Base100 範圍的 Emoji。這些字元在原始格式中並非框架語法。某些聊天應用程式、編輯器、鍵盤或正規化流程可能會插入變體選擇器或以其他方式轉換複製的符號。因此,螢幕上看起來相似的資料流,實際上可能在位元層面不同,導致嚴格解碼失敗。在互通性重要的情況下,請保留正確的編碼點。

Base100 是一種編碼方式,而非加密、雜湊、簽章、認證、壓縮、隱寫或人類語言 Emoji 轉換。任何人只要擁有對應的對映表,都可以恢復原始文字。改變一個符號會改變一個位元組,但並沒有內建的校驗碼來判斷語法正確的變更是否為誤操作。請勿使用 Base100 來保護密碼、個人資訊、私人金鑰、令牌或機密訊息。若需保密與防篡改,請使用經過審查的加密與認證格式。

Emoji 的顯示會因作業系統、字型、瀏覽器與通訊平臺而有所不同。某些對應的編碼點可能顯示為彩色圖片、單色符號、方塊或出乎預料的影象。顯示方式不會改變符合標準字串內的數學對應關係,但透過會取代、刪除或裝飾字元的系統複製時,可能會產生不同結果。若目的地僅允許 ASCII 傳輸,Base64、base64url、Base32、Base58 或十六進位通常會更相容。

頁面將輸入或輸出限制為 500,000 個位元組或符號,以避免誤操作大量貼上導致瀏覽器當機。空值輸入會被拒絕,輸出從來不會靜默截斷,解碼時會使用致命的 UTF-8 驗證。獨立測試專案會鎖定下限與上限的編碼點,以及代表性的位元組偏移量。原始的 Rust 專案為格式來源,一個獨立的 Go 實現則記錄了相等的位元組公式,WHATWG 編碼標準則定義了瀏覽器在文字邊界使用的 UTF-8 行為。

方法與來源

編碼將文字轉換為 UTF-8,並將每個位元組 b 對映至碼點 U+1F3F7+b。解碼強制使用 256 碼點範圍,減去偏移量,並使用無正規化或忽略分隔符的 UTF-8 解碼。

常見問題

Base100 是一種加密方式嗎?
不是。這是一種可逆的位元組編碼。任何知道對應關係的人都可以解碼它,且它不提供任何保密性或驗證功能。
為何一個字元會變成幾個 emoji 符號?
Base100 對映 UTF-8 位元組,而非字元。非 ASCII 字元經常使用多個 UTF-8 位元組,且每個位元組會變成一個符號。
為何視覺相似的貼上值會失敗?
另一個應用程式可能插入了變體選擇器、空格、換行或替換碼點。嚴格的 Base100 僅接受 U+1F3F7 到 U+1F4F6 之間的碼點。

編碼與加密 使用指南

查看全部