Mcatorce Suite
← Volver al blog

Caracteres Invisibles y Letras Parecidas: Problemas Ocultos en el Texto

Cómo los espacios de ancho cero, los espacios de no separación y los homoglifos rompen código, búsquedas y controles de seguridad, y cómo encontrarlos con un inspector Unicode.

Prueba la herramienta: Inspector de Caracteres Unicode

Algunos de los errores más desconcertantes vienen de caracteres que no puedes ver. El texto copiado de una página web, una aplicación de chat o un documento puede llevar puntos de código ocultos que rompen comparaciones, analizadores y filtros.

Caracteres invisibles habituales

  • Espacio de ancho cero (U+200B): no ocupa ancho pero sigue separando palabras para el salto de línea. Puede romper el nombre de una variable, una URL o una contraseña que parece correcta.
  • Espacio de no separación (U+00A0): parece un espacio normal pero es un carácter distinto, por lo que una búsqueda o una división por un espacio normal fallan.
  • Marca de orden de bytes (U+FEFF): a veces se añade al principio de un archivo y puede aparecer como un carácter suelto antes de la primera línea.
  • Guion blando (U+00AD): invisible salvo que la palabra se parta en ese punto.
  • Marcas de dirección: caracteres que cambian el orden de visualización del texto y pueden disfrazar nombres de archivo.

Letras parecidas

Un homoglifo es un carácter distinto que se ve como otro. La letra cirílica a (U+0430) es visualmente casi idéntica a la a latina (U+0061), y la omicron griega se parece a la letra o. Pueden usarse en phishing, por ejemplo en un nombre de dominio que parece de una marca de confianza, o para esconder un identificador malicioso en el código fuente.

Cómo encontrarlos

Pega el texto sospechoso en el inspector Unicode. Cada carácter aparece con su punto de código, su categoría general y sus secuencias de escape. Los caracteres invisibles se muestran con categorías como formato o separador de espacio, y los parecidos muestran un punto de código distinto del que esperas.

Cómo solucionarlo

  1. Sustituye o elimina los caracteres no deseados.
  2. Normaliza el texto con NFC o NFKC cuando necesites que las formas equivalentes coincidan.
  3. En el código, no te fíes de los fragmentos copiados y usa linters que señalen caracteres inusuales.
  4. En los formularios, considera recortar y normalizar los nombres de usuario y los correos.

Preguntas frecuentes

¿Por qué mi búsqueda no encuentra una palabra que veo? Probablemente el texto contiene un espacio de no separación o una letra distinta pero de aspecto similar.

¿Todos los caracteres invisibles son malos? No. Las uniones de ancho cero son necesarias para mostrar correctamente algunos alfabetos y secuencias de emoji.