Free Tool

Detector de Caracteres Ocultos

Pega texto y el detector resalta cada carácter Unicode invisible que encuentra: espacios de ancho cero, joiners, marcas direccionales y guiones suaves, cada uno etiquetado con su punto de código.

Pega Texto para Detectar Caracteres Ocultos
Pega tu texto abajo y resaltaremos todos los caracteres ocultos e invisibles

Caracteres que detecta esta herramienta

Los caracteres Unicode invisibles más comunes que el detector busca, con lo que realmente hace cada uno

Espacio de Ancho Cero
U+200B

Marca una oportunidad de salto de línea. Se puede plantar dentro de un identificador para que coincida de forma distinta a como se lee.

No-Joiner de Ancho Cero
U+200C

Evita la unión de caracteres en escrituras cursivas como el árabe y el persa. Invisible, pero cambia cómo se conectan los glifos adyacentes.

Joiner de Ancho Cero
U+200D

El pegamento de las secuencias ZWJ de emoji: un emoji de familia son cuatro emoji unidos por tres caracteres U+200D, renderizados como un solo glifo.

Marca de Izquierda a Derecha
U+200E

Fuerza la dirección del texto de izquierda a derecha sin un glifo visible. Legítimo en texto de dirección mixta; abusado en suplantación bidi.

Marca de Derecha a Izquierda
U+200F

Fuerza la dirección de derecha a izquierda. Mismo doble uso que U+200E: necesario para hebreo y árabe, utilizado como arma en phishing.

Guión Suave
U+00AD

Invisible hasta que una línea corta en esa posición, cuando se renderiza como un guion. Suele importarse por accidente al copiar de PDFs.

Por qué los caracteres invisibles son un problema real

Los caracteres Unicode invisibles existen por razones legítimas: control de salto de línea, unión de escrituras cursivas, texto bidireccional, silabación opcional. Pero como se renderizan como nada, también son una herramienta de abuso. El paper Trojan Source (CVE-2021-42574, divulgado en octubre de 2021) demostró que los caracteres de override bidireccional podían hacer que el código fuente compilase de forma distinta a como se lee en pantalla. La divulgación complementaria (CVE-2021-42694) cubrió los ataques de homoglifos, donde una а cirílica (U+0430) reemplaza una a latina (U+0061) en un nombre de función. Más cerca del uso cotidiano, los caracteres de ancho cero se pegan en nombres de usuario e identificadores para que dos cadenas que se ven idénticas comparen como diferentes. Un detector que saque a la luz estos caracteres por punto de código es la forma más rápida de encontrarlos, porque no se pueden ver a simple vista.

Para qué es útil esto

Limpiar texto copiado
El texto pegado desde sitios web, PDFs y documentos de Word suele traer espacios de ancho cero y guiones suaves que rompen la búsqueda y la coincidencia. Pégalo aquí, elimínalos, copia el texto limpio de vuelta.
Revisar nombres de usuario e identificadores
Dos nombres de usuario que se leen como «admin» pueden ser cadenas distintas si uno contiene un U+200B. Pasa cualquier identificador sospechoso por el detector antes de confiar en una comparación.
Revisar código fuente
Los caracteres de override bidireccional (U+202A a U+202E) pueden esconder lógica en código que parece correcto. Pega cualquier snippet de una fuente no confiable antes de leerlo.
Cazar enlaces de phishing
Los ataques de homografía IDN usan caracteres confundibles para registrar dominios parecidos. El detector no resuelve el dominio, pero saca a la luz los caracteres invisibles escondidos en el texto del URL.

Qué debería buscar un barrido serio

Los seis caracteres listados arriba son los más comunes, pero no son el cuadro completo. Un barrido a fondo cubre varios rangos. Los caracteres de formato de ancho cero de U+200B a U+200F cubren oportunidades de salto de línea, joiners y marcas direccionales. U+2060 (word joiner) y U+FEFF (marca de orden de bytes, cuando aparece en medio del flujo) también son de ancho cero. El bloque de override bidireccional —U+202A a U+202E, más U+2066 a U+2069— es lo que explota Trojan Source. U+00AD (guión suave) es invisible hasta que hay un corte de línea. Los rellenos Hangul U+115F y U+3164 y el blanco braille U+2800 no renderizan nada pero ocupan una celda, lo que los hace útiles para esconder contenido a plena vista. La detección de confundibles es un problema relacionado pero distinto: una а cirílica y una a latina son visibles ambas, así que un detector de caracteres no las marca. Para eso necesitas una verificación contra los datos de confusables de Unicode, que mapea los caracteres que se parecen a un esqueleto normalizado.

Cómo usar bien el detector

Pega solo el texto que quieres revisar. Todo corre en tu navegador; nada se sube a ningún lado.

Usa el código de colores para distinguir los tipos de carácter de un vistazo: rojo para ZWSP, verde para ZWJ, naranja para RLM, y demás.

Tras detectar, haz clic en Eliminar para quitar todos los caracteres invisibles, y luego en Copiar Texto Limpio para llevar la versión saneada.

Revisa cualquier nombre de usuario, slug o identificador que venga de entrada de usuario antes de almacenarlo o compararlo.

Si una comparación de cadenas falla y las cadenas se ven idénticas, pega ambas aquí: un U+200B oculto suele ser la causa.

Para código fuente de terceros, rastrea U+202A a U+202E antes de leerlo. Son los overrides bidi detrás de Trojan Source.

Cómo funciona el detector

El detector corre por completo en tu navegador como JavaScript. Ningún texto sale de tu dispositivo, lo cual importa cuando pegas identificadores sensibles o código fuente. Funciona en Chrome, Firefox, Safari, Edge y cualquier navegador moderno en escritorio o móvil. Rastrea los caracteres de ancho cero del rango U+200B a U+200F, los overrides bidireccionales de U+202A a U+202E y de U+2066 a U+2069, el word joiner U+2060, el guión suave U+00AD y la marca de orden de bytes U+FEFF cuando aparece fuera de la primera posición de un archivo. Ojo: marca los caracteres invisibles por punto de código; no detecta homoglifos, que son caracteres visibles que simplemente se parecen a otros.

Preguntas frecuentes sobre detectar caracteres ocultos