Что такое символ zalgo
Как работает текст Zalgo?
Я видел странно отформатированный текст под названием Zalgo, как показано ниже, написанный на различных форумах. Это немного раздражает, но это действительно беспокоит меня, потому что это подрывает мое представление о том, каким должен быть персонаж. Я понимаю, что персонаж должен двигаться горизонтально через линию и оставаться в определенном «контейнере». Очевидно, что текст Zalgo движется вертикально и, похоже, не ограничен каким-либо пространством.
Это ошибка / недостаток / эксплойт / взлом в Юникод? Это отдельные персонажи со странными свойствами? «Что» здесь происходит?
Hơw dŏes з҉҉ąĺgo т е҉xț worǩ?
2 ответов
в тексте используются комбинирующие символы, также известные как комбинирующие метки. См. раздел 2.11 сочетания символов в стандарте Unicode (PDF).
в Unicode отрисовка символов не использует простую модель символьной ячейки, где каждый глиф помещается в поле с заданной высотой. Комбинирование знаков может отображаться выше, ниже или внутри базового символа
таким образом, вы можете легко построить последовательность символов, состоящую из базового символа и» объединение выше » меток любой длины, чтобы достичь любой желаемой визуальной высоты, предполагая, что программное обеспечение рендеринга соответствует модели рендеринга Unicode. Такая последовательность, конечно, не имеет смысла, и даже обезьяна может ее произвести (например, при наличии клавиатуры с подходящим драйвером).
и вы можете смешивать метки» объединение выше «и» объединение ниже».
пример текста в вопросе начинается с:
Zalgo текст работает из-за комбинации символов. Это специальные символы, которые позволяют изменять символ, который приходит раньше.
y + = y, который на самом деле
поскольку вы можете складывать их один поверх другого, вы можете произвести следующее:
то же самое касается размещения вещей нижний:
в Unicode основным блоком объединения диакритики для европейских языков и международного фонетического алфавита является U+0300–U+036F.
В Юникоде основным блоком сочетания диакритических знаков для европейских языков и международного фонетического алфавита является U + 0300 – U + 036F. Комбинированные диакритические знаки также присутствуют во многих других блоках символов Unicode. В Юникоде диакритические знаки всегда добавляются после главного символа (в отличие от некоторых старых наборов комбинированных символов, таких как ANSEL ), и к одному и тому же символу можно добавить несколько диакритических знаков, в том числе сложенные диакритические знаки сверху и снизу, хотя некоторые системы могут этого не делать. сделать их хорошо.
СОДЕРЖАНИЕ
Диапазоны Unicode
Следующие блоки предназначены специально для комбинирования символов:
Таблица кодов официального консорциума Unicode по объединению диакритических знаков (PDF) | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | А | B | C | D | E | F | |
U + 030x | ◌̀ | ◌́ | ◌̂ | ◌̃ | ◌̄ | ◌̅ | ◌̆ | ◌̇ | ◌̈ | ◌̉ | ◌̊ | ◌̋ | ◌̌ | ◌̍ | ◌̎ | ◌̏ |
U + 031x | ◌̐ | ◌̑ | ◌̒ | ◌̓ | ◌̔ | ◌̕ | ◌̖ | ◌̗ | ◌̘ | ◌̙ | ◌̚ | ◌̛ | ◌̜ | ◌̝ | ◌̞ | ◌̟ |
U + 032x | ◌̠ | ◌̡ | ◌̢ | ◌̣ | ◌̤ | ◌̥ | ◌̦ | ◌̧ | ◌̨ | ◌̩ | ◌̪ | ◌̫ | ◌̬ | ◌̭ | ◌̮ | ◌̯ |
U + 033x | ◌̰ | ◌̱ | ◌̲ | ◌̳ | ◌̴ | ◌̵ | ◌̶ | ◌̷ | ◌̸ | ◌̹ | ◌̺ | ◌̻ | ◌̼ | ◌̽ | ◌̾ | ◌̿ |
U + 034x | ◌̀ | ◌́ | ◌͂ | ◌̓ | ◌̈́ | ◌ͅ | ◌͆ | ◌͇ | ◌͈ | ◌͉ | ◌͊ | ◌͋ | ◌͌ | ◌͍ | ◌͎ | CGJ |
U + 035x | ◌͐ | ◌͑ | ◌͒ | ◌͓ | ◌͔ | ◌͕ | ◌͖ | ◌͗ | ◌͘ | ◌͙ | ◌͚ | ◌͛ | ◌͜ | ◌͝ | ◌͞ | ◌͟ |
U + 036x | ◌͠ | ◌͡ | ◌͢ | ◌ͣ | ◌ͤ | ◌ͥ | ◌ͦ | ◌ͧ | ◌ͨ | ◌ͩ | ◌ͪ | ◌ͫ | ◌ͬ | ◌ͭ | ◌ͮ | ◌ͯ |
Заметки 1. ^ Начиная с версии Unicode 13.0 |
Кодовые точки U + 032A и U + 0346–034A являются символами IPA :
Кодовые точки U + 034B – 034E являются диакритическими знаками IPA для расстройства речи :
U + 034F является « объединяющим графемным соединителем » (CGJ) и не имеет видимого глифа.
Комбинированная таблица кодов расширенного официального консорциума Unicode с диакритическими знаками (PDF) | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | А | B | C | D | E | F | |
U + 1ABx | ◌᪰ | ◌᪱ | ◌᪲ | ◌᪳ | ◌᪴ | ◌᪵ | ◌᪶ | ◌᪷ | ◌᪸ | ◌᪹ | ◌᪺ | ◌᪻ | ◌᪼ | ◌᪽ | ◌᪾ | ◌ᪿ |
U + 1ACx | ◌ᫀ | |||||||||||||||
U + 1ADx | ||||||||||||||||
U + 1AEx | ||||||||||||||||
U + 1AFx | ||||||||||||||||
Заметки 1. ^ Начиная с версии Unicode 13.0 2. ^ Серые области обозначают неназначенные кодовые точки. |
Таблица кодов официального консорциума Unicode Дополнение по комбинированным диакритическим знакам (PDF) | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | А | B | C | D | E | F | |
U + 1DCx | ◌᷀ | ◌᷁ | ◌᷂ | ◌᷃ | ◌᷄ | ◌᷅ | ◌᷆ | ◌᷇ | ◌᷈ | ◌᷉ | ◌᷊ | ◌᷋ | ◌᷌ | ◌᷍ | ◌᷎ | ◌᷏ |
U + 1DDx | ◌᷐ | ◌᷑ | ◌᷒ | ◌ᷓ | ◌ᷔ | ◌ᷕ | ◌ᷖ | ◌ᷗ | ◌ᷘ | ◌ᷙ | ◌ᷚ | ◌ᷛ | ◌ᷜ | ◌ᷝ | ◌ᷞ | ◌ᷟ |
U + 1DEx | ◌ᷠ | ◌ᷡ | ◌ᷢ | ◌ᷣ | ◌ᷤ | ◌ᷥ | ◌ᷦ | ◌ᷧ | ◌ᷨ | ◌ᷩ | ◌ᷪ | ◌ᷫ | ◌ᷬ | ◌ᷭ | ◌ᷮ | ◌ᷯ |
U + 1DFx | ◌ᷰ | ◌ᷱ | ◌ᷲ | ◌ᷳ | ◌ᷴ | ◌᷵ | ◌᷶ | ◌᷷ | ◌᷸ | ◌᷹ | ◌᷻ | ◌᷼ | ◌᷽ | ◌᷾ | ◌᷿ | |
Заметки 1. ^ Начиная с версии Unicode 13.0 2. ^ Серая область указывает неназначенную кодовую точку. |
Объединение диакритических знаков для символов Официальная таблица кодов Консорциума Unicode (PDF) | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | А | B | C | D | E | F | |
U + 20Dx | ◌⃐ | ◌⃑ | ◌⃒ | ◌⃓ | ◌⃔ | ◌⃕ | ◌⃖ | ◌⃗ | ◌⃘ | ◌⃙ | ◌⃚ | ◌⃛ | ◌⃜ | ◌⃝ | ◌⃞ | ◌⃟ |
U + 20Ex | ◌⃠ | ◌⃡ | ◌⃢ | ◌⃣ | ◌⃤ | ◌⃥ | ◌⃦ | ◌⃧ | ◌⃨ | ◌⃩ | ◌⃪ | ◌⃫ | ◌⃬ | ◌⃭ | ◌⃮ | ◌⃯ |
U + 20Fx | ◌⃰ | |||||||||||||||
Заметки 1. ^ Начиная с версии Unicode 13.0 2. ^ Серые области обозначают неназначенные кодовые точки. |
Таблица кодов официального консорциума Unicode Combining Half Marks (PDF) | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | А | B | C | D | E | F | |
U + FE2x | ◌︠ | ◌︡ | ◌︢ | ◌︣ | ◌︤ | ◌︥ | ◌︦ | ◌︧ | ◌︨ | ◌︩ | ◌︪ | ◌︫ | ◌︬ | ◌︭ | ◌︮ | ◌︯ |
Заметки 1. ^ Начиная с версии Unicode 13.0 |
OpenType
OpenType имеет ccmp «тег функции» для определения глифов, которые представляют собой композиции или декомпозиции, включающие комбинирование символов, тег mark для определения положения комбинируемых символов на базовом глифе и mkmk для позиционирования комбинируемых символов друг на друга.