Unicode 解碼器

在 Unicode 跳脫序列與文字之間轉換。支援 \uXXXX、\UXXXXXXXX、&#XXXX; 實體與碼位查詢。所有處理均在您的瀏覽器中完成。

編碼與解碼 字元資訊 客戶端處理
結果將顯示在此...

如何使用 Unicode 解碼器

1

選擇模式

選擇「解碼」(跳脫序列轉文字)或「編碼」(文字轉跳脫序列)模式。

2

輸入內容

根據模式貼上 Unicode 跳脫序列或純文字。

3

轉換

點擊「轉換」並檢視結果與字元詳情。

什麼是 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

常見問題

支援哪些 Unicode 跳脫格式?

本工具支援 \uXXXX(BMP)、\UXXXXXXXX(完整 Unicode)、&#DDDD;(十進位 HTML 實體)、&#xHHHH;(十六進位 HTML 實體)與 U+XXXX(碼位表示法)進行解碼。

UTF-8 編碼是如何運作的?

UTF-8 使用 1 到 4 個位元組來編碼每個 Unicode 碼位。ASCII 字元(U+0000 到 U+007F)使用 1 個位元組,拉丁與其他常用字元使用 2 個位元組,大部分中日韓字元使用 3 個位元組,表情符號與罕用字元使用 4 個位元組。

\u 與 \U 有什麼區別?

\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 和 UTF-16 有什麼差別?

UTF-8 以 1-4 個位元組編碼字元,完全相容 ASCII,是 Web、JSON 與大多數 API 的預設編碼。UTF-16 使用 2 或 4 個位元組(超出 U+FFFF 時使用代理對),被 JavaScript、Java 與 Windows 內部使用。對大多數 Web 文字而言,UTF-8 更小也更安全。

碼位(code point)與碼元(code unit)有什麼不同?

碼位是 Unicode 標準指派給每個字元的編號(é 的碼位是 U+00E9);碼元則是編碼方式所使用的儲存單位。UTF-8 的碼元是 8 位元的位元組 — U+00E9 需要兩個 — 而 UTF-16 的碼元是 16 位元,超出 U+FFFF 的字元需要兩個碼元(即代理對,surrogate pair)。JavaScript 字串採用 UTF-16,所以 'hello'.length 是 5,但一個 emoji 的 .length 是 2。

什麼是 Unicode 正規化形式(normalization forms)?何時會產生影響?

同一個可見字元可能對應多種位元組序列:é 可以是單一預組字元(NFC),也可以是 e 加上結合變音符號(NFD)。NFC 進行組合,NFD 進行分解,NFKC/NFKD 則進一步摺疊相容字元(全形形式、連字)。若在比較或雜湊使用者輸入之前沒有先做正規化,就是造成重複帳號與查詢失敗的典型原因 — 例如 fi 連字與 f+i。

什麼是 BOM?為什麼它會弄壞我的檔案?

位元組順序記號(BOM)是編碼後放在串流開頭的 U+FEFF(UTF-8 中為 EF BB BF),用來標示編碼方式。編輯器通常會將它隱藏,但在下游處理時它會變成第一個看不見的字元:CSV 表頭多出一個幽靈鍵、JSON 解析因這個多餘的記號而失敗,PHP session 也會在標頭送出前輸出它。UTF-8 沒有位元組順序的疑義,因此不需要 BOM — 儲存檔案時請不要加上它。

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}