Todos los artículos

Text Reverse: por qué «invertir un texto» es más difícil de lo que parece

«Dábale arroz a la zorra el abad» es uno de los palíndromos más célebres del español: quitando espacios y sin distinguir mayúsculas, se lee igual al derecho y al revés. Para texto en español sin tildes, invertir carácter por carácter funciona perfectamente — pero en cuanto aparecen tildes, la cosa se complica según cómo esté codificado el texto.

Qué es un clúster de grafemas

Lo que una persona percibe como «un carácter visible» a veces está compuesto por varios puntos de código en Unicode: un emoji de familia (👨‍👩‍👧), por ejemplo, en realidad son varios emojis independientes unidos por un carácter especial de unión de ancho cero. Esa combinación se llama clúster de grafemas.

Por qué una inversión ingenua lo rompe todo

Si se invierte una cadena por puntos de código individuales en vez de por clústeres de grafemas, la unión acaba en el lugar equivocado, y en lugar de un único emoji visible se obtiene un conjunto de caracteres sueltos y sin relación, que a menudo se ve como cuadrados «rotos» o emojis aleatorios en lugar del original.

Una inversión correcta

Una implementación adecuada primero divide la cadena en clústeres de grafemas (teniendo en cuenta uniones, modificadores y caracteres combinantes), y solo entonces invierte el orden de esos clústeres, no el de los puntos de código individuales dentro de ellos.

Para qué sirve

  • Comprobar un palíndromo o crear un efecto de texto «espejo».
  • Demostrar o diagnosticar un error de manejo de Unicode en código.
  • Tareas recreativas o educativas que necesitan una inversión correcta de texto con emojis.

Signos diacríticos combinantes

El carácter «é», cuando se escribe como la letra base «e» más un acento agudo combinante independiente (en vez de un único carácter precompuesto), son dos puntos de código relacionados por su orden: el acento siempre va justo después del carácter al que pertenece. Una inversión ingenua por puntos de código los intercambia de lugar, y el acento se «despega» de su letra y se pega a la vecina — una inversión correcta debe mantener el carácter base y sus signos combinantes juntos como una sola unidad.

Probar la herramienta