跳到工具區
文字

Unicode 文字跳脫與字元檢查

在瀏覽器檢查 grapheme cluster、code point、UTF-16 code unit、UTF-8 bytes、Unicode 正規化與常見跳脫寫法。

輸入0 個字元
結果0 個字元
就緒

想要更順手的原生工作流程?

把「Unicode 文字跳脫與字元檢查」放進一個快速鍵。

DevSexy Mac 版保留同樣私密的本機處理,同時提供全域快速鍵;不用管理瀏覽器分頁,需要時直接叫出。

全域快速鍵可離線使用本機處理
免費試用 Mac 版

目前的瀏覽器工具仍然免費。

Unicode 顯微鏡 · 四個不同的計數層級

人眼所見的一個字元,程式可能會數成四種答案。

使用者感知的 grapheme cluster、Unicode code point、JavaScript 的 UTF-16 code unit 與 UTF-8 實際 bytes 是不同層級。先保留每層證據,再決定是否正規化、跳脫、轉換大小寫或整理行順序。

LENS 011

Grapheme cluster

使用者感知的字形單位

LENS 024

Code point

Unicode 碼位序列

LENS 037

UTF-16 code unit

JavaScript String.length 的計數

LENS 0415

UTF-8 bytes

編碼後的位元組長度

Grapheme cluster 結構顯微鏡

👨🏽‍💻
U+1F468MANUTF-16 surrogate pair
U+1F3FDSKIN TONE膚色修飾碼位
U+200DZWJ連接 Emoji 序列
U+1F4BBLAPTOPUTF-16 surrogate pair

Code point 與編碼明細

AU+0041004141A(保留 ASCII)
éU+00E900E9C3 A9\u00E9
𝄞U+1D11ED834 DD1EF0 9D 84 9E\uD834\uDD1E
ZWJU+200D200DE2 80 8D\u200D

Unicode 正規化棱鏡

看起來相同,底層碼位與 bytes 仍可能不同。

NFC

é

U+00E9

2 bytes

NFD

e + ◌́

U+0065 U+0301

3 bytes

NFKC

相容分解後再組合

可能折疊全形、連字等區別

NFKD

相容分解

會拆開並折疊相容差異

不可見字元雷達

BOMU+FEFF

檔案開頭或文字邊界訊號

ZWJ / ZWNJU+200D / U+200C

字形連接與 Emoji 序列

Bidi 控制字元U+202A…U+2069

視覺顯示順序

NBSP 家族U+00A0 / U+202F

禁止換行的排版空白

Variation SelectorU+FE0F

選擇文字或 Emoji 呈現

語法不同,就不能把「Unicode 轉換」當成同一件事

JavaScript 輸入\u{1F680}

Backslash unescape 接受 scalar 大括號寫法

JSON 相容輸出\uD83D\uDE80

非 BMP 字元輸出 UTF-16 surrogate pair

HTML 特殊字元< &

HTML escape 只轉換 & < > 與選定的引號

HTML NCR&#x1F680;

解碼需要分號,且會拒絕無效 Unicode scalar

大小寫、行、空白與排序邊界

Locale 轉換與人類排序,都不是穩定的資料庫鍵。

Case 依 en-US、目前瀏覽器或 tr-TR locale 處理;Title / camel / snake 等是工具的簡化分詞規則,不是語言學標題大寫。Lines 以 Intl.Collator 排序,去重時保留第一行,trim 與大小寫選項只改變比較鍵;保留 EOL 時,只要原文有 CRLF 就統一輸出 CRLF。Whitespace 視圖會標示 ASCII space、tab、換行、NBSP 與 ZWSP,其他不可見信號要到 Analyze 明細檢查。結果仍受瀏覽器 Unicode 與 collation 資料版本影響。

執行可重現的範例

編輯文字前,先看見分解重音與不可見字元的真實結構。

使用範例會替換目前輸入、參考輸入、操作與選項。以下均為公開示範資料。

用 NFC 合成重音

輸入是 e 加 U+0301,並非單個預組合 é。

輸入

Café

NFC 把碼點序列變成 Café,報告保留前後對照。

Normalization prism · NFC
Changed: yes
After:  "Café"

標出 NBSP 與零寬空格

實際樣本包含 U+00A0、U+200B;方括號顯示只是說明真實字元。

輸入

user[U+00A0]name[U+200B]

標記讓不可見字元可讀,是診斷表示,不是清理後的替換內容。

user⍽name⟦ZWSP⟧

繼續處理相關任務

文字 Diff 比對

在瀏覽器本機依行、詞或字元比對兩段文字,並清楚標示檢視方式、忽略規則與複製輸出格式。

正規表示式線上測試

使用目前瀏覽器的 JavaScript RegExp 測試比對,檢查捕獲群組、indices 與替換結果,並可設定 Worker 逾時。

Base64 編碼/解碼

在瀏覽器本機轉換文字與 Base64,可選 UTF-8、UTF-16、Latin-1,以及 Standard Base64 或 Base64URL alphabet。

在 DevSexy Mac 應用程式中重複處理

反覆處理本機資料時,可透過 Option 快捷鍵開啟原生應用程式,離線使用工具。

直接回答

什麼是 Unicode 文字跳脫與字元檢查?

線上檢查 Unicode grapheme cluster、code point、UTF-16 code unit、UTF-8 bytes、不可見字元、NFC/NFD/NFKC/NFKD 正規化與 JavaScript、JSON、HTML 跳脫寫法。

它能做什麼?

  • 分析
  • HTML 跳脫
  • HTML 取消跳脫
  • 反斜線跳脫
  • 反斜線取消跳脫
  • 大小寫
  • 行處理
  • 正規化
  • 空白字元

如何使用 Unicode 文字跳脫與字元檢查

  1. 01

    準備輸入

    貼上精確文字,保留不可見字元和換行。

  2. 02

    選擇操作

    先分析,再主動選擇正規化或空白操作。

  3. 03

    核對結果

    替換識別碼或簽名文字前,核對變化的碼點及下游比較規則。

常見問題

外觀相同的字串為什麼不相等?
它們可能使用不同碼點序列,例如預組合重音與組合標記,也可能包含不可見字元;正規化前應先檢查碼點。
NFKC 與 NFC 一樣保守嗎?
不是。相容性正規化可能合併寬度、連字和表現形式差異,只有這些變化符合下游文字約定時才應使用。
JavaScript length 統計的是可見字元嗎?
不是,它統計 UTF-16 編碼單元。字素叢集、Unicode 碼點和 UTF-8 位元組是不同數量,emoji、組合標記和非 BMP 文字中常不相同。