Ich habe seltsam formatierten Text namens Zalgo gesehen, wie unten in verschiedenen Foren geschrieben. Es ist irgendwie nervig anzusehen, aber es stört mich wirklich, weil es meine Vorstellung davon untergräbt, was ein Charakter sein soll. Mein Verständnis ist, dass sich ein Charakter horizontal über eine Linie bewegen und in einem bestimmten "Container" bleiben soll. Offensichtlich bewegt sich der Zalgo-Text vertikal und scheint nicht auf Leerzeichen beschränkt zu sein.
Ist das ein Bug / Fehler / Exploit / Hack in Unicode? Sind diese einzelnen Charaktere mit seltsamen Eigenschaften? "Was passiert hier?
H̡̫̤̤̣͉̤ͭ̓̓̇͗̎̀ơ̯̗̱̘̮͒̄̀̈ͤ̀͡w͓̲͙͖̥͉̹͋ͬ̊ͦ̂̀̚ ͎͉͖̌ͯͅͅd̳̘̿̃̔̏ͣ͂̉̕ŏ̖̙͋ͤ̊͗̓͟͜e͈͕̯̮̙̣͓͌ͭ̍̐̃͒s͙͔̺͇̗̱̿̊̇͞ ̸̤͓̞̱̫ͩͩ͑̋̀ͮͥͦ̊Z̆̊͊҉҉̠̱̦̩͕ą̟̹͈̺̹̋̅ͯĺ̡̘̹̻̩̩͋͘g̪͚͗ͬ͒o̢̖͇̬͍͇͓̔͋͊̓ ̢͈͙͂ͣ̏̿͐͂ͯ͠t̛͓̖̻̲ͤ̈ͣ͝e͋̄ͬ̽͜҉͚̭͇ͅx͎̬̠͇̌ͤ̓̂̓͐͐́͋͡ț̗̹̝̄̌̀ͧͩ̕͢ ̮̗̩̳̱̾w͎̭̤͍͇̰̄͗ͭ̃͗ͮ̐o̢̯̻̰̼͕̾ͣͬ̽̔̍͟ͅr̢̪͙͍̠̀ͅǩ̵̶̗̮̮ͪ́? ̙͉̥̬͙̟̮͕ͤ̌͗ͩ̕͡
Antworten:
Der Text verwendet Kombinationszeichen, auch Kombinationszeichen genannt. Siehe Abschnitt 2.11 unter Kombinieren von Zeichen im Unicode-Standard (PDF).
In Unicode wird beim Rendern von Zeichen kein einfaches Zeichenzellenmodell verwendet, bei dem jedes Symbol in ein Feld mit einer bestimmten Höhe passt. Kombinationsmarkierungen können über, unter oder innerhalb eines Basiszeichens gerendert werden
So können Sie auf einfache Weise eine Zeichenfolge erstellen, die aus einem Basiszeichen und "Kombinieren über" -Markierungen beliebiger Länge besteht, um eine beliebige visuelle Höhe zu erreichen, vorausgesetzt, die Rendering-Software entspricht dem Unicode-Rendering-Modell. Eine solche Sequenz hat natürlich keine Bedeutung, und selbst ein Affe könnte sie produzieren (z. B. bei einer Tastatur mit geeignetem Treiber).
Und Sie können die Markierungen "Kombinieren oben" und "Kombinieren unten" mischen.
Der Beispieltext in der Frage beginnt mit:
H
ͭ
̓
̓
̇
quelle
U+1F4A9
.Zalgo-Text funktioniert aufgrund der Kombination von Zeichen. Dies sind Sonderzeichen, mit denen Sie vorhergehende Zeichen ändern können.
ODER
y + ̆ = y̆ was eigentlich ist
Da Sie sie übereinander stapeln können, können Sie Folgendes erzeugen:
y̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆
was eigentlich ist:
Das gleiche gilt für das Unterlegen von Sachen:
y̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆
das ist in der Tat:
In Unicode ist der Hauptblock für die Kombination von Diakritika für europäische Sprachen und das internationale phonetische Alphabet U + 0300 - U + 036F.
Mehr dazu hier
Um eine Liste mit kombinierten diakritischen Zeichen zu erstellen, können Sie das folgende Skript verwenden (da Links immer wieder sterben).
Überprüfen Sie sie auch aus
Mͣͭͣ̾ Vͣͥͭ͛ͤͮͥͨͥͧ̾
quelle
ALT
Codes fragen , dann können Sie das nicht tun. Sie würden einfach einfügen,y̆̆
wo es in "reines" HTML gelangt , und der Browser würde es zaubern ...