跳至主要內容
Lizely

UTF-8 編碼/解碼

將 Unicode 文字轉換為正確格式的 UTF-8 位元組,或嚴格解碼位元組序列,不進行靜默取代。

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

使用方式

  1. 1.選擇文字轉為 UTF-8 位元組,或 UTF-8 位元組轉為文字,然後選擇十六進位、十進位或二進位表示方式。
  2. 2.輸入 Unicode 文字或嚴格格式化的位元組標籤,並點選轉換按鈕。
  3. 3.將輸出結果與原始格式進行精確對照,並驗證往返轉換正確性後,才可取代原始資料。

關於UTF-8 編碼/解碼

UTF-8 編碼/解碼工具可在瀏覽器中將 Unicode 文字與 UTF-8 位元組相互轉換。可將文字轉為十六進位、十進位或二進位位元組表示,或將這些表示方式轉迴文字。該轉換器使用瀏覽器標準的 TextEncoder 與致命的 TextDecoder,因此錯誤輸入將被拒絕,不會靜默取代。

UTF-8 是一種變長的 Unicode 編碼,由 Unicode 與 RFC 3629 標準化。有效的 Unicode 數值使用一至四個位元組。ASCII 碼點保留其單位元組值,較大值則使用首位元組與連續位元組模式。允許的數值範圍至 U+10FFFF,且排除 UTF-16 奇異碼點。

八個外部參考點涵蓋美元符號 U+0024 為 24、A 為 41、銅元符號 U+00A2 為 C2 A2、歐元符號 U+20AC 為 E2 82 AC、微笑表情 U+1F600 為 F0 9F 98 80、U+007F 邊界、U+0800 邊界以及最大數值 U+10FFFF 為 F4 8F BF BF。編碼與解碼測試均使用這些值。

十六進位輸出使用大寫兩位數位元組,以空格分隔。十進位輸出使用從 0 到 255 的數值,以空格分隔。二進位輸出每位元組使用恰好八位元組。這些僅為相同位元組序列的顯示表示,改變表示方式不會改變底層 UTF-8 串列。

十六進位解碼支援以空格或逗號分隔的一位或兩位數位元組標籤,分離標籤可選 0x 字首,或連續的偶數長度十六進位字串。十進位輸入僅接受整數標籤。二進位輸入需每標籤恰好八個零或一的字元。空輸入將解碼為空文字。

解碼器採用致命錯誤處理方式。過長的編碼如 C0 AF、截斷序列如 E2 82、孤立的連續位元組、代理編碼以及超過 U+10FFFF 的值會明確產生錯誤。這避免了將替代字元視為已驗證的原始文字。

文字編碼在呼叫 TextEncoder 前會檢查未配對的 UTF-16 奇異碼元。JavaScript 字串可能包含這些不正確的片段,平臺編碼器通常會將其取代為 U+FFFD。本工具拒絕這些片段,以確保聲稱的無損轉換不會靜默改變輸入。有效的雙位元組補充字元對將被接受。

輸入文字與位元組的上限分別為 200,000 UTF-16 碼元與 200,000 位元組。這些限制影響記憶體、標籤解析、輸出大小與介面運作。該轉換器不支援大檔案流式處理或上傳;處理大資料應使用專用的二進位工具。

UTF-8 位元組與 Unicode 碼點、UTF-16 碼元、HTML 程式碼、URL 百分編碼、Base64、十六進位數、加密或壓縮不同。一個四位元組表情符號對應一個 Unicode 碼點,但由四個 UTF-8 位元組組成,通常包含兩個 JavaScript UTF-16 碼元。結果面板根據操作顯示位元組或碼點。

一個位元組序列在不知其編碼的情況下沒有可見意義。本頁面僅支援 UTF-8 編碼,並不會自動偵測傳統編碼如 Windows-1252、Shift JIS、GBK 或 ISO-8859 系列。若傳統編碼失敗,應先確認原始編碼,而非強行透過 UTF-8 處理。

所有文字與位元組皆保留在當前標籤中。不會上傳、記錄、儲存、標準化、翻譯、轉換為其他情境或自動複製。為確保可靠使用,應先以短小且已知的樣本為起點,選擇正確的表示方式,檢查位元組邊界,並驗證往返轉換結果。在轉換未知來源之前,請先保留原始資料。

方法與來源

以 200,000 單元限制文字與位元組;拒絕未配對的 UTF-16 代理對;使用瀏覽器 TextEncoder 進行編碼;將每個位元組序列化為大寫兩位十六進位、十進位 0–255 或正好八位二進位;解析連續的十六進位對或嚴格分隔的詞彙;拒絕超出範圍與格式錯誤的表示法;使用 TextDecoder('utf-8', {fatal:true}) 進行解碼,使過長、截斷、代理、孤立連續以及超出範圍的序列產生錯誤;不進行正則化處理,並保留所有處理過程在本機執行。

常見問題

為何錯誤的 UTF-8 會產生錯誤,而不是取代為一個替代字元?
致命解碼可避免損壞或非 UTF-8 的位元組被視為已驗證的原始文字。
我可以貼上一個連續的十六進位字串嗎?
可以,只要它包含偶數個十六進位數位;分離的標籤與可選的 0x 字首也都被接受。
UTF-8 與 Base64 或 URL 編碼相同嗎?
不。UTF-8 將 Unicode 數值對映為位元組;Base64 與百分編碼則代表位元組,用於不同的傳輸情境。
為何一個字元可能需要四個位元組?
UTF-8 是變寬字元,且包含許多 emoji 等補充 Unicode 標量值,需佔用四個位元組。

編碼與加密 使用指南

查看全部