什麼是隱形字元偵測器?
隱形字元偵測器可掃描文字中隱藏的 Unicode 字元,例如零寬空格、軟連字元和不間斷空格。這些字元往往導致程式碼報錯、複製貼上異常,甚至隱藏惡意內容。將任意文字貼入後,即可立即顯示每個隱形字元的 Unicode 名稱及其位置。
偵測器掃描六種不可見字元:零寬字元(U+200B、U+200C、U+200D)、方向標記(LRM、RLM)、變體選擇符、控制字元、特殊空格(不換行空格、em-quad、細空格)與其他罕見隱形字元。每筆命中顯示 Unicode 名稱、十六進位碼點、位置與分類,可依分類過濾並一鍵複製清理後的文字。
使用方法
- 將文字貼上或輸入到輸入框中——隱形字元會在您輸入時立即被偵測出來。
- 查看標示結果,包含每個隱形字元的 Unicode 名稱(如 U+200B 零寬空格)、位置及前後文。
- 用篩選標籤選擇要移除的類別,然後點擊「清理文字」。完成後即可複製或下載清理後的結果。
何時使用
- 排查從網頁複製過來的程式碼莫名語法錯誤的真正原因。
- 在把使用者輸入的文字寫進資料庫之前先清洗一遍。
- 檢查可疑郵件或文件中是否藏有字形混淆字元或夾帶的 Unicode。
結果
您將從網站複製的程式碼片段貼到編輯器中,卻一直出現語法錯誤。偵測器發現變數名稱之間隱藏了兩個零寬空格(U+200B),以及行尾存在一個由右至左標記(U+200F)——這些字元在編輯器中完全不可見,卻導致編譯器報錯。
常見問題
- 零寬空格是什麼?為什麼會讓我的程式碼出錯?
- U+200B 是專為亞洲文字排版設計的隱形字元。一旦貼到程式碼裡,它夾在兩個字元中間卻不顯示,於是「const foo」對編譯器來說其實是「constfoo」,被當成未知識別字而直接報錯。
- 不可見字元一定有害嗎?有合法用途嗎?
- 很多都有用。零寬連接符可組成家庭組合 emoji,變體選擇符決定 emoji 顯示樣式,不換行空格能避免人名被斷行。偵測器以分類列出,讓你保留需要的、清掉其餘。
- 不可見字元有可能被惡意利用嗎?
- 有。釣魚信件常藏雙向覆寫字元(U+202E),把「invoice.exe」顯示成「invocxe.pdf」誘導下載。Prompt injection 攻擊也常用。把文字丟進偵測器跑一次,這些隱形手段立刻原形畢露。
- 「清理文字」會移除所有不可見字元,還是只刪部分類別?
- 會移除目前過濾設定下偵測器標出的所有不可見字元。如果你關掉「空格」類別,那些異常空格就不會被刪。想全部清理乾淨,先把六類都打開再清理。
- 一般的空格和換行也會被列出來嗎?
- 不會。標準 ASCII 空格(U+0020)、Tab(U+0009)與換行(U+000A/U+000D)預設不會列出,因為它們是合理存在的。只有不換行空格、髮絲空格、en-space 等異類會出現,讓報告聚焦在真正的異常上。