Что это за строка и в чём её смысл?
H̡̫̤̤̣͉̤ͭ̓̓̇͗̎̀ơ̯̗̱̘̮͒̄̀̈ͤ̀͡w͓̲͙͖̥͉̹͋ͬ̊ͦ̂̀̚ ͎͉͖̌ͯͅͅd̳̘̿̃̔̏ͣ͂̉̕ŏ̖̙͋ͤ̊͗̓͟͜e͈͕̯̮̙̣͓͌ͭ̍̐̃͒s͙͔̺͇̗̿̊̇͞
̸̤͓̞̱̫ͩͩ͑̋̀ͮͥͦ̊Z̆̊͊҉҉̠̱̦̩͕ą̟̹͈̺̹̋̅ͯĺ̡̘̹̻̩̩͋͘g̪͚͗ͬ͒o̢̖͇̬͍͇͓̔͋͊̓ ̢͈͙͂ͣ̏̿͐͂ͯ͠t̛͓̖̻̲ͤ̈ͣ͝e͋̄ͬ̽͜҉͚̭͇ͅx͎̬̠͇̌ͤ̓̂̓͐͐́͋͡ț̗̹̝̄̌̀ͧͩ̕͢ ̮̗̩̳̱̾w͎̭̤͍͇̰̄͗ͭ̃͗ͮ̐o̢̯̻̰̼͕̾ͣͬ̽̔̍͟ͅr̢̪͙͍̠̀ͅǩ̵̶̗̮̮ͪ́?̙͉̥̬͙̟̮͕ͤ̌͗ͩ̕͡
Ответы
Ответ 1
Эта строка написана с использованием комбинируемых символов Юникода. А Юникод — эт
такая система для кодирования вообще всех возможных элементов любой письменности, котора
существует сейчас, существовала когда-то (мертвые языки) и даже для некоторых выдуманных (например, клингонского языка). В Юникоде больше ста тысяч символов1 и у каждого есть свой номер, который записывается так: U+<шестнадцатеричное число>. Например, латинская буква A2 — это U+0041.
В письменности множества языков есть диакритические символы — это значки, которы
добавляются к букве и в результате получается либо новая буква (е → ё), либо какой-то дополнительный смысл той же буквы (например, ударение).
Таких значков очень много: фантазия человечества придумала десятки кружочков, крючочков
точек, чёрточек и прочего. Очень сложно было бы вместить в стандарт сочетание каждого из этих значков с каждой возможной буквой. Поэтому были придуманы и разработаны комбинируемые символы.
Работает это вот так. Есть латинская буква A. Нам нужно написать эту букву с кружочко
наверху, чтобы получилось Å. Для этого, мы используем базовую букву A, а после неё стави
комбинируемый символ ˚ – U+030A «Комбинируемый надстрочный кружок»3. Фактически эти символы идут раздельно один за другим, но браузер (или текстовый редактор) умеет их комбинировать, поэтому показывает их вместе.
Комбинируемые символы могут добавляться не только сверху, но и снизу: A͢, и даж
прямо поверх символа: ̸А. Можно даже сразу везде: ̸Å͢.
Что произойдёт, если после одного «базового» символа поставить мнооого комбинируемых? Получится столбик символов, вот такой: Å̊̊̊̊̊̊̊̊. Именно так и устроен «Залго»-текст.
Текст выше написан насколько возможно простым языком и содержит ряд фактических неточностей. Ниже — примечания для профессионалов.
На самом деле, не символов, а кодовых позиций (code points), которым назначен (assigned/designated
какой-то абстрактный символ (abstract character) или другая роль. Всего возможных кодовых позиций 111411210 или 17×216 (от 0 до U+10FFFF) и большинству пока что ничего не назначено.
На самом деле, A следует называть абстрактным символом (abstract character), котором
назначена кодовая позиция U+0041. Абстрактный символ содержит в себе только идею буквы A, но не определяет какое-то конкретное отображение (glyph). Конкретные изображения содержатся в шрифтах.
Это не единственный способ получить абстрактный символ Å. Две кодовых позиции Юникод
назначены непосредственно этому символу: Латинская заглавная буква A с кружочком сверх
U+00C5 и Знак ангстрема U+212B. Это далеко не исключение, многие абстрактные символы имеют назначенные кодовые позиции (1 или более) и «собираются» с помощью комбинируемых символов. Все абстрактные символы, которым назначены собственные кодовые позиции, называются assigned characters.
Аналогичный вопрос на английском: How does Zalgo text work?
Комментариев нет:
Отправить комментарий