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 生成器对它们了如指掌。在其中任意一个生成器里,你可以让它生成一段文字,然后一直按退格键试试看,会很有趣:
你可能会问,那为什么 ä 和 ą 还要作为独立字符存在呢?为什么不让所有声调符号都用组合的方式?原因有两点:历史(一些预组合的带符号字符自活字印刷时代就已存在)和复杂性(组合符号更难处理、显示、编辑,甚至设计)。围绕这个问题有过许多争论——你可以打开上述维基百科页面的历史一栏仔细研读那些旧文档来了解。(事实上,如今所有的越南语字母也都有预组合字符。)
还有几个或许有用的小知识点:
- Zalgo 很好地提醒我们,虽然很难约束文本,但至少可以裁剪它——你常常会看到这样的例子:在某些地方允许 Zalgo 自由蔓延,而在另一些地方,文本会被裁剪,使得三个或更多声调符号落在裁剪区域之外。


- 眼尖的读者可能已经注意到,上面的 ä 和 á͆ 看起来不一样。据我所知,如果当前字体不支持某个字母与声调符号的组合,那么整个组合会回退到另一种字体,而不是从不同字体中东拼西凑。
- 还有更多的组合字符,而表情符号也使用类似的系统来添加肤色修饰、性别,或是将一位女性和一辆消防车组合成一名女性消防员。
最后,我在那个解释 Zalgo 的 Fandom 页面上发现了这条颇为有趣的警告:
请不要在讨论区或维基上的任何其他地方发布 Zalgo 文本。违规者将被封禁。
每一条警告背后都有一个故事;看起来,迷上这种故障文字的人,可能比预想的要多。
随机一篇博客
评论
登录后参与讨论