← 返回字元博物館
數位文字常識

看不見的 Unicode:空格、連接符與隱藏風險

不可見字元不一定是空白。了解零寬空格、連接符、不換行空格與方向控制符的用途,以及隱藏文字何時會變得危險。

字元顯微鏡

修改下方樣本,看看螢幕內容實際由哪些碼位組成。

第一組 A–B 含 U+200B ZERO WIDTH SPACE,第二組含 U+2060 WORD JOINER。兩者看起來相同,建議的斷行行為卻正好相反。

7 個碼位7 個可見單位
  1. U+0041
  2. U+200B
  3. U+0042
  4. U+0020
  5. U+0041
  6. U+2060
  7. U+0042

不可見字元不一定是「空字元」。它可以標記詞語邊界、阻止斷行、連接字母形狀、選擇顯示樣式,甚至改變文字排列方向。

兩個看起來完全相同的字串,內部可能帶著不同指令。

「空格」其實有許多不同工作

U+0020 SPACE 是鍵盤上熟悉的空格。Unicode 還包含:

  • U+00A0 NO-BREAK SPACE 有可見寬度,但不鼓勵斷行;
  • U+2009 THIN SPACE 提供較窄的排版間隔;
  • U+3000 IDEOGRAPHIC SPACE 占一個東亞全形字格;
  • U+2800 BRAILLE PATTERN BLANK 是沒有凸點的點字字元,不是通用空格。

它們都可能看似空白,但寬度、斷行行為、語意與無障礙表現不同。只因平台拒絕一種空格,就以另一個「看起來空白」的字元替換,容易造成意外版面。

零寬字元仍可攜帶指令

  • U+200B ZERO WIDTH SPACE 提供沒有可見間隔的可斷行位置;
  • U+2060 WORD JOINER 不增加寬度,同時阻止斷開;
  • U+200C ZERO WIDTH NON-JOINER 可阻止連寫或合字;
  • U+200D ZERO WIDTH JOINER 可鼓勵連接,也連接 Emoji 序列;
  • U+FE0E/U+FE0F 要求文字或 Emoji 顯示。

把它們都叫「隱形空格」會掩蓋不同任務,其中幾個根本不是空格。在需要上下文塑形的書寫系統中,連接符和非連接符也可能參與正確拼字;任意刪除會改變詞形或意思。

方向控制符解決真實的多語問題

阿拉伯文與希伯來文主要從右向左,拉丁字母與數字常從左向右。Unicode 雙向演算法決定混合文字如何顯示;方向標記、隔離、嵌入與覆寫協助軟體處理歧義。

這些控制符是多語文字的重要基礎設施。但邏輯儲存順序與視覺順序可能不同,處理不當也會讓畫面內容看似與程式實際處理的序列不一致。因此程式碼編輯器與安全工具特別注意異常的雙向控制符。

為何複製來的文字難以除錯?

不可見字元常來自格式化文件或網頁、輸入法與文字塑形、自動斷行、Emoji 序列,以及刻意製作空白暱稱。

症狀包括搜尋失敗、看似重複的使用者名稱、網址比較不相等、意外斷行,或游標像被卡住。正確診斷方式是查看碼位,而不是不斷按退格鍵。

隱藏字元與相似字元涉及安全

Unicode 支援世界各地的文字,因此不同字元可能共享相似字形。拉丁 a 和西里爾 а 並非同一字元,即使某種字型把它們畫得很像。

Unicode 技術標準 #39 定義偵測易混淆識別符的機制。目標是發現風險,而不是把所有文字粗暴轉成 ASCII。國際姓名混合文字可能完全合理;同樣組合出現在仿冒銀行網域中就值得警惕。

「不可感知 NLP 攻擊」研究也顯示,隱形插入、同形字替換、重排與刪除控制,可以在外觀幾乎不變時影響搜尋及語言系統。

安全與高風險用途

合理用途包括測試文字顯示、分析文件、處理斷行,以及在確實需要的書寫系統使用連接控制。

高風險用途包括偽裝連結或帳號、繞過審核、在原始碼插入控制符、違反服務規則製造空白身分,以及對讀者隱藏內容。即使只是裝飾,若螢幕閱讀器反覆朗讀「空白」或陌生字元名稱,也會傷害無障礙體驗。

產品應如何處理?

應用程式可以對異常格式控制符顯示警告,在適當情境比較正規化與易混淆骨架,保留合法多語文字,在診斷工具列出碼位,並把顯示名稱與安全敏感的帳號 ID 分開。

正規化、易混淆偵測與移除格式控制,解決的是不同問題。沒有一個適用所有語言與情境的「清理 Unicode」按鈕。

看不見不等於沒有意義;沒有字形,本身也可能是一條指令。

空白字元工具會標示各字元及預期行為。請用於測試與正當排版需求,而非偽裝文字或規避平台規則。

資料來源與延伸閱讀

  1. 技術規範
  2. 技術規範
  3. 技術規範
  4. 學術論文
    Bad Characters: Imperceptible NLP Attacks

    Nicholas Boucher, Ilia Shumailov, Ross Anderson, and Nicolas Papernot 2022 IEEE Symposium on Security and Privacy 2022 DOI 10.1109/SP46214.2022.9833641

留言回饋

正在載入留言……