文字互通性
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資料可信度