736 Stimmen

Wie funktioniert Zalgo text?

Ich habe in verschiedenen Foren seltsam formatierten Text mit dem Namen Zalgo gesehen, wie er unten steht. Es ist irgendwie ärgerlich anzuschauen, aber es stört mich wirklich, weil es meine Vorstellung davon untergräbt, was ein Charakter sein sollte. Nach meinem Verständnis soll sich ein Zeichen horizontal über eine Linie bewegen und innerhalb eines bestimmten "Containers" bleiben. Offensichtlich bewegt sich der Zalgo-Text vertikal und scheint nicht auf einen bestimmten Raum beschränkt zu sein.

Ist dies ein Fehler/Fehler/Ausnutzung/Hack in Unicode? Sind dies einzelne Zeichen mit seltsamen Eigenschaften? "Was ist hier los?

Wie funktioniert Zalgo text?

453voto

Jukka K. Korpela Punkte 186389

Der Text verwendet kombinierende Zeichen, die auch als Kombinationszeichen bezeichnet werden. Siehe Abschnitt 2.11 von Kombinierte Zeichen im Unicode-Standard (PDF).

In Unicode wird bei der Zeichendarstellung kein einfaches Zeichenzellenmodell verwendet, bei dem jede Glyphe in ein Feld mit einer bestimmten Höhe passt. Kombinierte Zeichen können über, unter oder innerhalb eines Basiszeichens dargestellt werden

Man kann also leicht eine Zeichenfolge konstruieren, die aus einem Basiszeichen und "darüber kombinierten" Zeichen beliebiger Länge besteht, um eine beliebige visuelle Höhe zu erreichen, vorausgesetzt, die Rendering-Software entspricht dem Unicode-Rendering-Modell. Eine solche Folge hat natürlich keine Bedeutung, und selbst ein Affe könnte sie erzeugen (z. B. mit einer Tastatur mit geeignetem Treiber).

Und Sie können die Markierungen "oben kombinieren" und "unten kombinieren" mischen.

Der Beispieltext in der Frage beginnt mit:

292voto

Matas Vaitkevicius Punkte 53532

Zalgo-Text funktioniert durch die Kombination von Zeichen. Dies sind Sonderzeichen, die es erlauben, das vorhergehende Zeichen zu ändern.

enter image description here

OR

y + ̆ = y̆ was in Wirklichkeit bedeutet

y + ̆ = y̆

Da man sie übereinander stapeln kann, ergeben sich folgende Möglichkeiten:

Y̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆

was tatsächlich der Fall ist:

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

Das Gleiche gilt für das Unterlegen von Dingen:

Y̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆

das in der Tat der Fall ist:

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

In Unicode ist der Hauptblock der kombinierten diakritischen Zeichen für europäische Sprachen und das Internationale Phonetische Alphabet U+0300-U+036F.

Mehr dazu hier

Um eine Liste der kombinierten diakritischen Zeichen zu erstellen, können Sie das folgende Skript verwenden (da die Links immer wieder sterben)

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

Prüfen Sie auch sie aus

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X