一尘不染

Zalgo文字如何工作?

html

我在各种论坛上都看到过奇怪的格式化文本Zalgo,如下所示。看起来很烦人,但它确实使我感到困扰,因为它破坏了我对角色应该是什么样的观念。我的理解是,角色应该在一条线上水平移动并停留在某个“容器”内。显然,Zalgo文本是垂直移动的,似乎不受任何空间限制。

这是Unicode中的错误/缺陷/漏洞利用/黑客吗?这些单个字符是否具有怪异的属性?“什么”在这里发生?

̡̫̤̤̣͉̤ͭ̓̓̇͗̎̀ơ̯̗̱̘̮͒̄̀̈ͤ̀͡ ͓̲͙͖̥͉̹͋ͬ ̳̘̿̃̔̏ͣ͂̉̕ŏ̖̙͋ͤ ̳̘̿̃̔̏ͣ͂̉̕ŏ̖̙͋ͤ
̳̘̿̃̔̏ͣ͂̉̕ŏ̖̙͋ͤ
̳̘̿̃̔̏ͣ͂̉̕ŏ̖̙͙͔̺͇̗̱͋ͤ͗̓̿̆̆̆̆͊͟͜҉҉̠̱̦̩͕̟̹͈̺̹̋̅ͯĺ̡̘̹̻̩̩͎̭̤͍͇̰͋̄͗ͭ̃͗ͮ̐͘
͎̭̤͍͇̰̄͗ͭ̃͗ͮ̐ ͎̭̤͍͇̰̄͗ͭ̃͗ͮ̐ ͎̭̤͍͇̰̄͗ͭ̃͗ͮ̐ ͎̭̤͍͇̰̄͗ͭ̃͗ͮ̐ ͎̭̤͍͇̰̄͗ͭ̃͗ͮ̐
͎̭̤͍͇̰̄͗ͭ̃͗ͮ̐ ͎̭̤͍͇̰̄͗ͭ̃͗ͮ̐ ͎̭̤͍͇̰̄͗ͭ̃͗ͮ̐


阅读 449

收藏
2020-05-10

共1个答案

一尘不染

文本使用组合字符,也称为组合标记。请参阅_Unicode标准_(PDF)中的组合字符 2.11节。

在Unicode中,字符渲染不使用简单的字符单元模型,其中每个字形都适合具有给定高度的框。组合标记可以在基本字符的上方,下方或内部进行渲染

因此,您可以轻松地构造一个字符序列,包括基本字符和任意长度的“在上方组合”标记,以达到任何所需的视觉高度,前提是渲染软件符合Unicode渲染模型。这样的序列当然没有意义,甚至猴子也可以产生它(例如,给键盘一个合适的驱动器)。

而且,您可以混合“在上方组合”和“在下方组合”标记。

2020-05-10