文字互通性

Unicode 正規化、隱藏字元與文字編碼

解碼、正規化與移除字元解決不同問題。保留原始位元組或文字,明確選擇每一次轉換。

內容更新: · 維護者與修正回報

先選擇正規化契約

NFC、NFD 以組合或分解處理標準等價;NFKC、NFKD 另外合併相容差異,例如 ① 可變成 1。識別碼、數學文字與排版可能因此改變意義,不應盲目套用相容正規化。

碼位不等於使用者感知的單一字元;組合符號或 emoji 可能包含多個碼位。依位置對照不是編輯距離的對齊結果,工具會保留原文。原生 String.normalize 使用瀏覽器的 Unicode 實作,不是本站內建的最新版資料庫。

先檢查,再選擇移除

零寬連接符、非連接符、變體選擇符與雙向控制,可能影響合法語言或 emoji 的呈現。除非接收契約明確禁止,否則先保留。檢視器只涵蓋明示字元集,不涵蓋所有看不見的字形或仿冒技法。

補充平面字元之後的 UTF-16 位置與碼位位置可能不同;在編輯器定位時,請確認畫面所列索引規則。檢查選取類型與完整清理結果;移除控制碼不等於內容消毒,也不能證明內容可信。

解碼需要已知編碼

位元組解碼後才是文字。請明確選擇來源編碼;BOM 可識別部分 Unicode 位元組順序,但不是通用編碼偵測器。TextDecoder 的舊編碼映射依瀏覽器 Encoding Standard,可能不同於來源廠商的原始規格。

嚴格解碼會回報非法序列,但選錯舊編碼仍可能成功產生錯誤文字。請用已知文字與來源文件核對。UTF-8 匯出會建立新位元組,不保留原編碼、metadata 或非法序列;工具會先檢查瀏覽器支援。

e + U+0301 → NFC:é
① → NFKC:1
👩 + U+200D + 💻 → 保留連接符才能維持原 emoji
Big5 A4 40 → 一;UTF-8 匯出:E4 B8 80

資料可信度

資料來源