How does Zalgo text work?

前端 未结 2 1684
野的像风
野的像风 2020-11-22 10:52

I\'ve seen weirdly formatted text called Zalgo like below written on various forums. It\'s kind of annoying to look at, but it really bothers me because it undermines my not

相关标签:
2条回答
  • 2020-11-22 11:15

    Zalgo text works because of combining characters. These are special characters that allow to modify character that comes before.

    enter image description here

    OR

    y + ̆ = y̆ which actually is

    y + ̆ = y̆
    

    Since you can stack them one atop the other you can produce the following:


    y̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆

    which actually is:

    y̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆
    

    The same goes for putting stuff underneath:


    y̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆



    that in fact is:

    y̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆
    

    In Unicode, the main block of combining diacritics for European languages and the International Phonetic Alphabet is U+0300–U+036F.

    More about it here

    To produce a list of combining diacritical marks you can use the following script (since links keep on dying)

    for(var i=768; i<879; i++){console.log(new DOMParser().parseFromString("&#"+i+";", "text/html").documentElement.textContent +"  "+"&#"+i+";");}

    Also check em out



    Mͣͭͣ̾ Vͣͥͭ͛ͤͮͥͨͥͧ̾

    0 讨论(0)
  • 2020-11-22 11:17

    The text uses combining characters, also known as combining marks. See section 2.11 of Combining Characters in the Unicode Standard (PDF).

    In Unicode, character rendering does not use a simple character cell model where each glyph fits into a box with given height. Combining marks may be rendered above, below, or inside a base character

    So you can easily construct a character sequence, consisting of a base character and “combining above” marks, of any length, to reach any desired visual height, assuming that the rendering software conforms to the Unicode rendering model. Such a sequence has no meaning of course, and even a monkey could produce it (e.g., given a keyboard with suitable driver).

    And you can mix “combining above” and “combining below” marks.

    The sample text in the question starts with:

    • LATIN CAPITAL LETTER H - &#x48;
    • COMBINING LATIN SMALL LETTER T - &#x36d;
    • COMBINING GREEK KORONIS - &#x343;
    • COMBINING COMMA ABOVE - &#x313;
    • COMBINING DOT ABOVE - &#x307;
    0 讨论(0)
提交回复
热议问题