Zalgo: The good, the bad, and the very, very ugly

Marcin Wichary

Zalgo:好的、壞的,與非常、非常醜的

原文由 Marcin Wichary 發布,訂閱此部落格

你看過這樣的東西嗎?

The best way to predict the future is t̷o̶ ì̴͇n̵͓̆v̶̝̕ȇ̷̝͈̩͊̇̾̄̂̀̈̔̀͛͋͆̓͒͘͝ͅn̸̦̙̣̤͓̜̼͙̲͔̺͚̮̬͆̇̇͐̇̽̒̎t̵̮͎̃̒͒̋̂̏̒̀̿͌͗̄͑̀̀͒̈̚͠͝ ȋ̸̧̛̭̠͈̰̰̦̹̥̜̖̈̂̀̽̿̋̊́̇̍̓̆̉̄̄̊͊̒̎͋̂̒̍̽̄͝ͅt̶̨̢̺̱̻̭̣͉͕̥͚̯͍̣͕͔̬̥͔̘̼͌̉̀̄̊̆͛̽̍̐̔̐̀̾̋̆͒̏̏̋͋̽͗̌͋͗.̸̧̨̧̡̢̪͙̦͙̝̜̦̞̳̤͖̟͍̮͖̘̙̳͉̳̲̲͉̠͎̽̍̓̒̅̿͂͑̎͊̋͒̈́̅̈́̆̽̒͛͐͛̉̀̈́̈̉̏̏̋̒͘͝͝͝

在網路的傳說中,這種詭異、像是故障般的文字被稱為 Zalgo

Zalgo 是一種迷因,做法是把一張流行的圖片/漫畫以「腐化」的方式進行編輯,產生出嚇人的效果。「Zalgo」這個詞指的就是那個顯然造成腐化的存在,受害者會以一種詭異、不可名狀的方式唸出它的名字。

如果你感到好奇,可以點上面的連結去深入了解,不過對我們來說,有趣的地方在於……Zalgo 就是文字。你可以選取上面那一行。你可以複製、貼上。你甚至可以試著編輯它。但……那到底是什麼?又為什麼文字可以被這樣組合出來?

在 Unicode 裡,ä 和 ą 是完全獨立的字元,而且它們都跟 a 毫無關聯——任何字型設計師都會把它們視為同一個基底字母的變體,但沒有什麼能阻止設計師讓它們看起來非常、非常不一樣。

但現在想想越南語,它有六個聲調,對應到六種聲調符號,而且其中許多還可以兩兩組合成一對:

光是這一個語言,就產生了 104 個有變音符號的字母,以及 30 個帶有雙重變音符號的字母。

當然,你可以想像把所有這些都當成獨立字元加進去,但到某個時候,另一個想法就出現了:如果我們乾脆建立一個系統,讓你可以在任何字母上加上變音符號呢?

與其把 ä 當成一個字母輸出,你可以先輸出 a,再接著輸出 ̈  ,接著渲染邏輯就會把它們重新組合成 ä。而如果要得到兩個變音符號,就輸出 a,然後再接著輸出 ́   和   ͆  ,就會得到 á͆。

零一無限法則告訴我們,一旦你為「二」開了門,乾脆就允許三個甚至更多。再加上有些變音符號是加在字母下方的事實,好了:這就成了 Zalgo 迷因的完美溫床——它只是有創意地把變音符號一個接一個疊上去——不是為了溝通,純粹是為了視覺效果。

如今,在各種場合中會用到的組合用變音符號多達 122 個,而 Zalgo 產生器對它們瞭若指掌。一個有趣的玩法是,讓產生器自動產生一段,然後一直按 Backspace:

你可能會問,那為什麼還要為 ä 和 ą 保留獨立的字元呢?為什麼不是所有變音符號都用組合的就好?有兩個原因:歷史(有些預先組合好的變音字母,從活字印刷時代就已經存在)和複雜度(組合用變音符號更難處理、顯示、編輯,甚至更難設計)。圍繞這個問題有過許多爭論——你可以打開上面維基百科頁面的 History 區塊,細讀那些古老的文件來了解。(事實上,如今所有的越南語字母也都有預組字元的版本。)

還有幾個可能值得知道的小知識:

  • Zalgo 很好地提醒了我們,雖然要完全框住文字很困難,但至少你可以裁切它——你常常會看到像這樣的情況:在某些地方 Zalgo 可以自由蔓延,而在另一些地方文字被裁切,使得三個以上的變音符號落在裁切區域之外。
  • 眼尖的讀者可能已經注意到,上面出現的 ä 和 á͆ 看起來不一樣。就我所理解,如果目前的字型不支援某個字母與變音符號的組合,整個組合會退回(fallback)到另一種字型,而不是從不同字型中各取一部分來拼湊。
  • 還有更多組合字元,而 emoji 則使用類似的系統來加上膚色修飾、性別,或是把一個女人和一輛消防車放在一起變成一名女性消防員。

最後,我在那個解釋 Zalgo 的 Fandom 頁面上發現這個警告,覺得很有趣:

不要在討論區或 wiki 上的任何其他地方張貼 Zalgo 文字。違者將被封禁。

每個警告背後都有一個故事;看起來,迷上這種故障文字的人,可能比預期的還要多。

本文章由 muse-spark-1.2-contributor 進行翻譯

留言