← 返回字元博物館
Unicode 實驗室

Zalgo 文字為何會向上下「長毛」?

Zalgo 在一般文字後堆疊大量組合附加符。了解它們如何定位、為何正規化不會直接清除,以及效果會在哪裡出問題。

字元顯微鏡

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

每個可見字母後都接著多個組合附加符。它們通常不占獨立橫向寬度,因此能堆在同一位置。

24 個碼位5 個可見單位
  1. U+005A
  2. U+0334
  3. U+0321
  4. U+031B
  5. U+032B
  6. U+0339
  7. U+033F
  8. U+0061
  9. U+0335
  10. U+0321
  11. U+0333
  12. U+030B
  13. U+006C
  14. U+0334
  15. U+0319
  16. U+0313
  17. U+0067
  18. U+0336
  19. U+0324
  20. U+0308
  21. U+006F
  22. U+0337
  23. U+031C
  24. U+033D

Zalgo 文字看起來像字型逃出了行框:

Z̴̡̛̫̹̿a̵̡̳̋l̴̙̓g̶̤̈o̷̜̽

它不是圖片,通常也不是字型損壞;效果來自在一般基本字元後加入大量組合附加符

組合附加符在做什麼?

許多書寫系統需要重音、母音符號、聲調與其他和相鄰字元有關的記號。Unicode 把其中許多編碼成不占間距的組合字元。

可以表示為:

  • 單一預組字元 U+00E9 LATIN SMALL LETTER E WITH ACUTE;
  • 或 U+0065 LATIN SMALL LETTER E,後接 U+0301 COMBINING ACUTE ACCENT。

第二個碼位修飾第一個。排版系統把重音放到基本字母上方,卻不讓游標再前進一般字元的寬度。

Zalgo 產生器利用同一機制,只是在每個字母上方、下方與中間加入遠超正常拼寫需求的附加符。

為何能堆得如此誇張?

組合字元具有規範組合類別,協助決定附加符在基本字元周圍的順序。字型也會為常見組合提供定位錨點。當序列極長或罕見時,排版系統只能盡力處理。

一種字型可能疊得整齊;另一種可能讓符號碰撞、蓋住鄰近行,或伸出按鈕邊界。文字序列仍然有效,只是介面未曾為一個字母掛上幾十個重音而設計。

這也解釋了效果為何會隨瀏覽器與作業系統變化。Unicode 規定字元與屬性,字型決定形狀和附著位置。

正規化不等於「刪除重音」

Unicode 正規化讓等價序列更容易比較。NFC 在有預組字元時合成基本字母與附加符;NFD 則拆解許多預組字元。兩者也會把組合符調整到規範順序。

但它們都不是 Zalgo 清理器。多數極端組合沒有預組等價字元,正規化後附加符仍是有意義的編碼字元。

產品若要提供「純文字」功能,必須另外判斷哪些符號屬於語言、哪些只是裝飾。粗暴移除所有組合符,會破壞越南文、阿拉伯文、希伯來文、印度文字等許多正常語言。

一個可見字母可以含有許多碼位

Unicode 文字分段通常把基本字元與後續組合符放進同一個延伸字素叢集,因此即使 由兩個碼位編碼,游標仍可把它視為一個單位。

Zalgo 把這條規則推到極端:一個看似單一字母的單位,可能有十個、二十個甚至更多碼位。這會影響資料庫長度限制、訊息截斷、游標與選取、行高、搜尋、審核和螢幕閱讀器。

使用者看到的長度,不等於電腦儲存的長度。

裝飾效果背後是重要基礎設施

組合附加符不是「壞字元」,而是數位書寫不可缺少的一部分。故障效果之所以成立,正因 Unicode 與現代塑形系統支援複雜文字。

風險來自情境與數量。龐大的堆疊會讓介面難讀、製造異常行高,也可能隱藏自動系統仍會處理的差異。Unicode 隱形擾動研究也顯示,隱形字元、同形字與重排可能干擾語言處理。

怎樣使用才不容易破壞版面?

  • 效果只用於短標題或單字。
  • 使用低至中等強度。
  • 在目標 App 預覽。
  • 內容重要時附上一般文字版本。
  • 避免帳號、連結、Email 與安全資訊。

產品介面應同時限制碼位與字素叢集數量、處理溢出,並測試異常長的組合序列。「看起來短」不表示儲存與顯示成本低。

Zalgo 是靠累積產生的排版:基本字母保持普通,真實的 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

留言回饋

正在載入留言……