Unicode 轉義編解碼

粘進文本立刻得到轉義結果,粘進 \u4F60 立刻還原成字元——不用點按鈕,也不上傳。

怎麼用

  1. 選「轉義」或「還原」——輸入框內容原樣保留,同一段文本可以從兩個方向看,不用重新貼上。
  2. 轉義:輸入或貼上文本,結果立刻出現。按目標語言選語法:\uXXXX(Java、JSON、.properties;BMP 以外的字元寫成 UTF-16 代理對)、\u{X}(ES6 JavaScript、Rust、Swift、Ruby、PHP)、\UXXXXXXXX(Python、C、Go、C#)、U+XXXX(Unicode 標準記法)。
  3. 再選範圍:「僅非 ASCII」(預設)只轉 U+007F 以上的字元,ASCII、空格與換行原樣保留;「全部字元」每個碼點都轉,輸出是純 ASCII。
  4. 還原:貼上含轉義的文本即得原文。結果上方一行會說明還原了幾處;有認不出的片段時,會指出是哪個片段、在第幾位。

示例

輸入

價格:99 元 😀

轉義結果

\u4EF7\u683C\uFF1A99 \u5143 \uD83D\uDE00

「價」「格」「:」「元」都在 U+007F 以上,各自寫成 4 位十六進位制;「99」是 ASCII,原樣保留;「😀」是 U+1F600,超出 BMP,\uXXXX 語法把它寫成代理對 \uD83D\uDE00。切到「\u{X}」得到 \u{4EF7}\u{683C}\u{FF1A}99 \u{5143} \u{1F600};「\UXXXXXXXX」得到 \U00004EF7\U0000683C\U0000FF1A99 \U00005143 \U0001F600;「U+XXXX」得到 U+4EF7 U+683C U+FF1A 99 U+5143 U+1F600(元後面是兩個空格:分隔空格 + 原文空格)。這些輸出都能粘回還原模式無損解出。

規則、侷限與已知問題

  • 只認四種語法:\uXXXX(恰好 4 位十六進位制)、\u{X}(1–6 位)、\UXXXXXXXX(恰好 8 位)、U+XXXX(1–6 位,大寫 U+)。%uXXXX、\x{X}、CSS 的 \X、\N{NAME} 都不支援;你 這類 HTML 引用請用 HTML 實體工具。
  • \uXXXX 固定 4 位:\u12 與 \u12345 都不按 \uXXXX 解讀——\u12345 會解成 U+1234 加一個字面「5」。需要 1–6 位請寫 \u{…}。
  • \uXXXX 沒有字元邊界:\u4F60abc 解出「你abc」;U+4F601 是碼點 U+4F601(5 位,合法),不是 U+4F60 加「1」。
  • U+XXXX 裡碼點後的一個半形空格是分隔符、不是內容:U+4F60 hello 解出「你hello」。本工具的 U+ 輸出在每個碼點後帶一個分隔空格(末尾除外),因此可無損往返;若原文在該處本來有空格,輸出裡會看到兩個空格——前一個作為分隔符在還原時被吃掉,後一個保留。外部手寫的無空格寫法遇十六進位制字元會粘連(U+4F60face 是 8 位連續,計入未識別)。
  • 代理對只出現在 \uXXXX 語法裡(那是 Java/JSON 的表示法);\u{1F600}、\U0001F600、U+1F600 直接寫碼點。高代理後面不是低代理時原樣保留並計入未識別,不會取代成「�」。
  • 超過 U+10FFFF 的碼位與代理區碼位同樣原樣保留並計入未識別,不做靜默取代。
  • 「僅非 ASCII」範圍不轉義字面反斜槓:原文裡本來就有 \u4f60 時,還原模式會把它當轉義解讀——這是該範圍固有的歧義;在意反斜槓請選「全部字元」。
  • 還原只解一層:\u005Cu4F60 得到字面 \u4F60,不是「你」;確實需要兩層就再粘一次。
  • 合法的控制字元照常解出:\u0000 得到 U+0000(看不見,但不是錯誤),結果裡可能含有不可見字元。
  • \n、\t 這類字串轉義原樣保留、不計入未識別;完整 JSON 字串字面量歸 JSON 工具。URL、HTML、Base64 編碼也各有獨立工具。
  • 上限 100 000 碼點,超過即報錯、不截斷;超過 20 000 碼點時停止輸入約 0.6 秒後更新結果。
  • 不讀檔案、不上傳、不寫 URL、不存歷史:全部在瀏覽器裡完成。

轉義或還原之後,通常還會用到這些。