¿Cómo funciona el texto Zalgo?

Resuelto Mike asked hace 13 años • 2 respuestas

He visto un texto con un formato extraño llamado Zalgo, como el siguiente, escrito en varios foros. Es un poco molesto de ver, pero realmente me molesta porque socava mi noción de lo que se supone que es un personaje. Según tengo entendido, se supone que un personaje debe moverse horizontalmente a través de una línea y permanecer dentro de un determinado "contenedor". Obviamente el texto de Zalgo se mueve verticalmente y no parece estar restringido a ningún espacio.

¿Es esto un error/fallo/explotación/truco en Unicode? ¿Son estos personajes individuales con propiedades extrañas? "¿Que está sucediendo aquí?


H̡̫̤̤̣͉̤ͭ̓̓̇͗̎̀ơ̯̗̱̘̮͒̄̀̈ͤ̀͡w͓̲͙͖̥͉̹͋ͬ̊ͦ̂̀̚ ͎͉͖̌ͯͅͅd̳̘̿̃̔̏ͣ͂̉̕ŏ ̖̙͋ͤ̊͗̓͟͜e͈͕̯̮̙̣͓͌ͭ̍̐̃͒s͙͔̺͇̗̱̿̊̇͞ ̸̤͓̞̱̫ͩͩ͑̋̀ͮͥͦ̊Z̆̊҉҉̠̱̩͕͕̹̯̋ ̺̹ĺ̡̘̹̻̩̩͋͘g̪͚͗ͬ͒o̢̖͇̬͍͇͓̔͋͊̓ ̢͈͙͂ͣ̏̿͐͂ͯ͠t̛͓̖̲ͤ̈ͣ͝e͋̄ͬ̽͜҉͚̭͇ͅx ͎̬̠͇̌ͤ̓̂̓͐͐́͋͡ț̗̹̝̄̌̀ͧͩ̕͢ ̮̗̩̳̱̾w͎̭̤͍͇̰̄͗ͭ̃͗ͮ̐o̢̢̯̻̰̼͕̪̾ͣͬ̽̔̍͟ͅ ͙͍̠ǩ̵̶̗̮̮ͪ́?̙͉̥̬͙̟̮͕ͤ̌͗ͩ̕͡


Mike avatar Jul 05 '11 15:07 Mike
Aceptado

El texto utiliza caracteres combinados, también conocidos como marcas combinadas. Consulte la sección 2.11 de Combinación de caracteres en el estándar Unicode (PDF).

En Unicode, la representación de caracteres no utiliza un modelo de celda de carácter simple donde cada glifo cabe en un cuadro con una altura determinada. Las marcas combinadas se pueden representar encima, debajo o dentro de un carácter base.

Por lo tanto, puede construir fácilmente una secuencia de caracteres, que consta de un carácter base y marcas "combinadas arriba", de cualquier longitud, para alcanzar la altura visual deseada, suponiendo que el software de renderizado se ajuste al modelo de renderizado Unicode. Por supuesto, una secuencia así no tiene significado, e incluso un mono podría producirla (por ejemplo, si se le diera un teclado con el controlador adecuado).

Y puede mezclar las marcas "combinando arriba" y "combinando abajo".

El texto de muestra de la pregunta comienza con:

  • LETRA H MAYÚSCULA LATINA -H
  • COMBINANDO LETRA T MINÚSCULA LATINA -ͭ
  • COMBINANDO KORONIS GRIEGOS -̓
  • COMBINANDO COMA ARRIBA -̓
  • COMBINANDO EL PUNTO ARRIBA -̇
Jukka K. Korpela avatar Dec 01 '2013 08:12 Jukka K. Korpela

El texto de Zalgo funciona gracias a la combinación de caracteres. Estos son caracteres especiales que permiten modificar el carácter que viene antes.

ingrese la descripción de la imagen aquí

O

y + ̆ = y̆ que en realidad es

y + ̆ = y̆

Como puedes apilarlos uno encima del otro, puedes producir lo siguiente:


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

que en realidad es:

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

Lo mismo ocurre con poner cosas debajo:


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



que en realidad es:

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

En Unicode, el bloque principal para combinar signos diacríticos de idiomas europeos y el alfabeto fonético internacional es U+0300–U+036F.

Más sobre esto aquí

Para producir una lista de combinación de signos diacríticos, puede utilizar el siguiente script (ya que los enlaces siguen muriendo)

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

Échales un vistazo también



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

Matas Vaitkevicius avatar Apr 29 '2015 14:04 Matas Vaitkevicius