Unicode 解碼器
在 Unicode 跳脫序列與文字之間轉換。支援 \uXXXX、\UXXXXXXXX、&#XXXX; 實體與碼位查詢。所有處理均在您的瀏覽器中完成。
結果將顯示在此...
字元資訊
| 字元 | 碼位 | UTF-8 位元組 | HTML 實體 | CSS 跳脫 | JS 跳脫 |
|---|
如何使用 Unicode 解碼器
選擇模式
選擇「解碼」(跳脫序列轉文字)或「編碼」(文字轉跳脫序列)模式。
輸入內容
根據模式貼上 Unicode 跳脫序列或純文字。
轉換
點擊「轉換」並檢視結果與字元詳情。
什麼是 Unicode 編碼?
Unicode 編碼允許將任何語言或符號系統的字元以不同格式表示。常見的編碼格式包括 \uXXXX(JavaScript/JSON)、&#NNNNN;(HTML 實體)與 U+XXXX(Unicode 碼位)。這些編碼確保文字可以在不同系統之間安全地傳輸與顯示。
編碼格式
JavaScript編碼
用於 JSON 與 JavaScript 字串
HTML 實體 (&#XXXX;)
用於 HTML 中表示特殊字元
CSS 跳脫 (\XXXXXX)
用於 CSS 內容與識別符
修復亂碼(Mojibake Repair)
亂碼(mojibake)的成因是一種字元編碼的位元組被另一種編碼解讀。最常見的情況:UTF-8 位元組被以 Windows-1252 或 Latin-1 解讀,"café" 變成 "café"、"張三" 變成 "å¼ ä¸‰"。切換到上方的「修復亂碼」模式,貼上亂碼文字,解碼器會把每個字元當作原始位元組重新以 UTF-8 解碼,還原出正確文字。
常見亂碼範例
| 亂碼 | 修復後 | 原因 |
|---|---|---|
| café | café | UTF-8 → Latin-1 |
| å¼ ä¸‰ | 张三 | UTF-8 → Latin-1 |
| “hi†| “hi” | UTF-8 → double-encoded |
| ü ö ñ | ü ö ñ | UTF-8 → Windows-1252 |
| �� | � � | 位元組已遺失(U+FFFD) |
要在自己的應用中預防亂碼,請永遠明確宣告編碼:HTML 使用 <meta charset="UTF-8">,HTTP 回應標頭設定 Content-Type: text/html; charset=utf-8,並在資料庫與連線中統一使用 UTF-8。
UTF-8、UTF-16、UTF-32 比較
| UTF-8 | UTF-16 | UTF-32 | |
|---|---|---|---|
| 編碼單元 | 8 bit | 16 bit | 32 bit |
| A (U+0041) | 41 | 00 41 | 00 00 00 41 |
| é (U+00E9) | C3 A9 | 00 E9 | 00 00 00 E9 |
| 中 (U+4E2D) | E4 B8 AD | 4E 2D | 00 00 4E 2D |
| 🎉 (U+1F389) | F0 9F 8E 89 | D8 3C DF 89 | 00 01 F3 89 |
| 適用場景 | Web、JSON、API——相容 ASCII 且緊湊 | Java、JavaScript、C# 的記憶體文字 | 需直接存取碼點,實際少見 |
常用 Unicode 碼點速查
高頻查詢字元速查表:標點符號、貨幣符號、重音字母與數學符號,附 U+XXXX 碼點。
標點與符號
| “U+201C | ”U+201D | ‘U+2018 | ’U+2019 |
| –U+2013 | —U+2014 | …U+2026 | U+A0 |
| ©U+A9 | ®U+AE | ™U+2122 | °U+B0 |
貨幣符號
| €U+20AC | £U+A3 | ¥U+A5 | ₹U+20B9 |
| ¢U+A2 | ₽U+20BD | ₩U+20A9 | ฿U+E3F |
重音字母
| éU+E9 | èU+E8 | êU+EA | üU+FC |
| öU+F6 | ñU+F1 | åU+E5 | øU+F8 |
| çU+E7 | ßU+DF | ąU+105 | žU+17E |
數學與箭頭
| ±U+B1 | ×U+D7 | ÷U+F7 | ≈U+2248 |
| ≠U+2260 | ≤U+2264 | ≥U+2265 | →U+2192 |
| ∞U+221E | ∑U+2211 | √U+221A | µU+B5 |
常見問題
本工具支援 \uXXXX(BMP)、\UXXXXXXXX(完整 Unicode)、&#DDDD;(十進位 HTML 實體)、&#xHHHH;(十六進位 HTML 實體)與 U+XXXX(碼位表示法)進行解碼。
UTF-8 使用 1 到 4 個位元組來編碼每個 Unicode 碼位。ASCII 字元(U+0000 到 U+007F)使用 1 個位元組,拉丁與其他常用字元使用 2 個位元組,大部分中日韓字元使用 3 個位元組,表情符號與罕用字元使用 4 個位元組。
\uXXXX 使用 4 個十六進位數字,可表示基本多語言平面(U+0000 到 U+FFFF)中的字元。\UXXXXXXXX 使用 8 個十六進位數字,可表示任何 Unicode 字元,包括超出 BMP 的字元。
這是亂碼(mojibake)的典型特徵:UTF-8 位元組被以 Windows-1252/Latin-1 解讀。"é" 表示 "é" 的兩個 UTF-8 位元組(0xC3 0xA9)被當成兩個獨立字元顯示。使用「修復亂碼」模式即可還原。"�" 是 U+FFFD 替換符,表示位元組已遺失,無法復原。
UTF-8 以 1-4 個位元組編碼字元,完全相容 ASCII,是 Web、JSON 與大多數 API 的預設編碼。UTF-16 使用 2 或 4 個位元組(超出 U+FFFF 時使用代理對),被 JavaScript、Java 與 Windows 內部使用。對大多數 Web 文字而言,UTF-8 更小也更安全。
碼位是 Unicode 標準指派給每個字元的編號(é 的碼位是 U+00E9);碼元則是編碼方式所使用的儲存單位。UTF-8 的碼元是 8 位元的位元組 — U+00E9 需要兩個 — 而 UTF-16 的碼元是 16 位元,超出 U+FFFF 的字元需要兩個碼元(即代理對,surrogate pair)。JavaScript 字串採用 UTF-16,所以 'hello'.length 是 5,但一個 emoji 的 .length 是 2。
同一個可見字元可能對應多種位元組序列:é 可以是單一預組字元(NFC),也可以是 e 加上結合變音符號(NFD)。NFC 進行組合,NFD 進行分解,NFKC/NFKD 則進一步摺疊相容字元(全形形式、連字)。若在比較或雜湊使用者輸入之前沒有先做正規化,就是造成重複帳號與查詢失敗的典型原因 — 例如 fi 連字與 f+i。
位元組順序記號(BOM)是編碼後放在串流開頭的 U+FEFF(UTF-8 中為 EF BB BF),用來標示編碼方式。編輯器通常會將它隱藏,但在下游處理時它會變成第一個看不見的字元:CSV 表頭多出一個幽靈鍵、JSON 解析因這個多餘的記號而失敗,PHP session 也會在標頭送出前輸出它。UTF-8 沒有位元組順序的疑義,因此不需要 BOM — 儲存檔案時請不要加上它。
相關工具
權威參考資料
本工具背後的第一手資料來源——官方標準與規範,而非二手摘要。