Unicode 轉換器

把文本轉義為 JavaScript 的 \uXXXX / \u{HEX} 序列,把混雜的轉義序列解碼迴文本,並以碼位為單位逐個檢視每個字元:U+ 十六進位制、十進位制、UTF-8 位元組、UTF-16 碼元與 JS 轉義形式。輔助平面的碼位(表情符號)絕不會被拆成代理項兩半。
全部處理都在您的瀏覽器本地完成 — 您的資料不會上傳到任何伺服器。
轉義風格:
編碼:文本按 Unicode 碼位切分(因此表情符號保持完整),每個碼位都寫成一個 JavaScript 轉義序列。
解碼:每一個 \uXXXX、\u{hex} 或 U+hex 序列(大小寫均可)都會被轉換成對應的字元。相鄰的代理項對轉義會合併成一個碼位。未被轉義的文本則原樣保留。
碼位檢視:每個碼位佔一行,各列以製表符分隔:字元、U+HEX、十進位制、UTF-8 位元組、UTF-16 碼元與 JS 轉義。整張表都可以從輸出區複製或下載。
在輸入框按 Ctrl+Enter 運行當前模式。
選擇編碼、解碼或碼位檢視並執行。全部處理都留在您的瀏覽器裡。
如何看懂各列:
U+HEX 是碼位的十六進位制寫法;十進位制 是同一個數的十進位制寫法。UTF-8 位元組 顯示該字元以 UTF-8 書寫時佔用的一到四個位元組(例如 中 = E4 B8 AD)。UTF-16 顯示該字元在 JavaScript 字串內部佔用的一到兩個 16 位碼元(U+FFFF 以上的表情符號需要兩個碼元,也就是一對“代理項”:例如 U+1F600 = D83D DE00)。JS 轉義 是該字元在原始碼中推薦的書寫形式。
“示例”按鈕會載入什麼:
它載入的是與當前所處模式相配的例子,而不是固定不變的一段文本,因為一段文本沒法同時滿足三種模式的需要。編碼與碼位查看都以普通字符為輸入,所以它們拿到的是 Hello 中文! 🎉 — 包含 ASCII、中日韓文字、一個全角標點和一個表情符號。解碼接收的是轉義序列,而一句普通的話裡一個轉義都沒有:那樣只會原樣回顯一遍,這個模式就沒什麼可展示的了,所以解碼模式拿到的是 Say \u4e2d\u6587 \u{1F600} U+0041 \uD83C\uDF89 OK,裡面包含了解碼器支持的每一種形式(一對小寫的 \uXXXX、一個帶花括號的 \u{HEX}、一個 U+hex 形式、一對相鄰的代理項,以及幾個並不是轉義的單詞)。輸入框下方的那行文字會說明應當留意的結果;在編碼模式下,它還會隨轉義風格與 ASCII 複選框變化,因此再按一次“示例”就能看到另外三種風格。
什麼是 Unicode?

Unicode 是一份統一的目錄,為每一種書寫系統的每一個字元都分配一個編號,也就是它的碼位,範圍從 U+0000 到 U+10FFFF — 共計 1,114,112 個可用位置,劃分成 17 個平面,每個平面 65,536 個。其中第一個平面是基本多文種平面(BMP),容納了大多數現存語言的字元;而大多數表情符號和不少歷史文字則位於更高的(“輔助平面”/astral)平面上。

UTF-8、UTF-16 與 UTF-32 並不是互相競爭的字元集,而是把那些編號序列化成位元組的三種方式 — 碼位檢視模式會對同一個字元同時展示這三種,旁邊還列出 JavaScript 的轉義寫法。

Unicode 負責為字元命名與編號;UTF-8/UTF-16/UTF-32 以及 \uXXXX 轉義,不過是同一個數字的不同書寫形式。