piapia123
es

Inspección de texto

Texto

Todo se ejecuta en tu navegador: no se sube nada

Entrada
Arrastra un archivo aquí para cargarlo
Resultado

«Este código se ve idéntico, ¿por qué falla?» «Copié este nombre de variable, ¿por qué no lo encuentra?» «Este CSV tiene cabeceras, ¿por qué el nombre de la primera columna está mal?» La respuesta suele ser la misma: el texto contiene algo que no puedes ver. Son tres tipos, y aquí se informan por separado: · Caracteres invisibles: espacios de ancho cero, BOM, controles de dirección, espacios irrompibles, espacios ideográficos. Cada aparición lleva su posición: un espacio de ancho cero en el carácter 3 y otro en el 300 exigen tratamientos distintos. · Confundibles: las letras cirílicas y griegas con forma de letra latina (la `а` cirílica frente a la `a` latina). Así funcionan los dominios falsos: `раypal.com` y `paypal.com` se ven iguales pero son dominios distintos. ⚠️ Solo se informan los parecidos entre sistemas de escritura. Una `a` de ancho completo y una `a` normal son ambas latinas y solo cambian de forma de anchura: eso es cosa de la normalización (NFKC), no un homoglifo, y señalarlo enterraría las letras cirílicas reales en cuanto un texto chino contenga una letra de ancho completo. · Forma de codificación: la normalización, si los finales de línea están mezclados y cómo se cuenta la longitud. ⚠️ La `é` tiene dos escrituras: un punto de código (U+00E9) o `e` más acento combinante (dos puntos de código). Se ven exactamente igual pero son bytes distintos que no se comparan como iguales. macOS guarda los nombres de archivo en una forma y la mayoría de los lenguajes comparan en otra: de ahí viene «el mismo nombre de archivo no coincide en la otra máquina».

Funciones

  • Encuentra todos los caracteres invisibles y su posición: espacios y unidores de ancho cero, BOM, guiones blandos, controles de dirección, espacios irrompibles, espacios ideográficos — 30 tipos
  • Encuentra caracteres confundibles (letras cirílicas y griegas con forma latina) y dice qué es cada uno en realidad y a qué letra latina se parece
  • Marca los confundibles en su sitio con la misma notación `⟦…⟧` que los invisibles: `раypal` → `⟦U+0440 Cyrillic→p⟧⟦U+0430 Cyrillic→a⟧ypal`, para ver de un vistazo que la tercera letra es cirílica
  • Cuenta los caracteres por sistema de escritura, así un alfabeto de más salta a la vista
  • Comprueba las cuatro formas de normalización —NFC, NFD, NFKC y NFKD— y explica qué significa «ya es NFC pero no NFKC»
  • Detecta los finales de línea (LF / CRLF / CR) y avisa de una mezcla, que se manifiesta como un error de sintaxis en una posición desconcertante
  • Cuatro recuentos de longitud en paralelo: grupos de grafemas, puntos de código, unidades UTF-16 (el .length de JavaScript) y bytes UTF-8
  • Opcionalmente sustituye los invisibles y los confundibles por marcas como ⟦U+200B⟧ / ⟦U+0430 Cyrillic→a⟧ para pegar el resultado en otro sitio

Cómo se usa

  1. Pega el texto
  2. Mira si hay algo en los grupos «Caracteres invisibles» y «Caracteres confundibles»
  3. Activa la opción de marcado y copia el texto marcado si necesitas investigar en otro sitio

Preguntas frecuentes

¿Por qué un emoji tiene cuatro «longitudes» distintas?
Porque longitud tiene cuatro significados. Un 👍 es un carácter para quien lee (un grupo de grafemas), un punto de código en Unicode, dos unidades en una cadena de JavaScript (un par suplente) y cuatro bytes en UTF-8. Usar la equivocada donde importa es el clásico «el recorte partió el emoji por la mitad». Y 👨‍👩‍👧 es más extremo: un carácter, cinco puntos de código, ocho unidades.
¿Cómo entran los espacios de ancho cero?
Tres fuentes habituales: copiar texto de una página web arrastra caracteres de ancho cero usados para el corte de línea; los teclados blandos de iOS y macOS los insertan con ciertos métodos de entrada; y las aplicaciones de mensajería añaden marcas de dirección al reenviar. No cambian lo que ves, pero pasan a formar parte de un identificador: por eso dos nombres de variable «idénticos» no compilan.
¿Qué significa «ya es NFC pero no NFKC»?
NFKC aplica además una descomposición de compatibilidad: los alfanuméricos de ancho completo, las ligaduras (fi) y los superíndices (²) se reducen a su forma llana. Así que un texto puede ser canónicamente equivalente y contener a la vez caracteres de ancho completo — y una letra de ancho completo no se compara como igual a su equivalente ASCII al buscar, al comparar o al usarla como identificador. Usa NFKC para limpiar datos; NFC basta cuando solo quieres que los acentos se escriban de forma coherente.
¿Por qué los finales de línea mezclados provocan errores de sintaxis?
Porque la mayoría de los analizadores tratan el salto de línea como espacio en blanco, pero algunas herramientas (scripts de shell antiguos, Makefiles, ciertos motores de plantillas) tratan el CR como contenido. El CR de más de un `\r\n` acaba dentro de una cadena o de un nombre de variable, y el error se informa en una posición que no tiene ningún sentido. Que el autocrlf de Git esté configurado distinto en cada máquina es el origen habitual de esos archivos.
¿Por qué las letras de ancho completo, o el alargador vocálico japonés, no se informan como confundibles?
Porque la prueba es deliberadamente conservadora: un carácter cuenta solo cuando el carácter al que se parece pertenece a otro sistema de escritura. La а cirílica se parece a la a latina (el cirílico no es latino) y la Ο griega se parece a la O latina (el griego no es latino): esos son los homoglifos reales. Una letra latina de ancho completo y una a normal son ambas latinas y solo cambian de forma de anchura: eso es un asunto de normalización (lo trata NFKC, y esta herramienta lo informa aparte en Normalización), no de suplantación. El alargador vocálico japonés solo se parece a algún símbolo y tampoco es un homoglifo entre sistemas. Preferimos informar de menos que enterrar las letras cirílicas que de verdad importan bajo un aviso por cada letra de ancho completo de un texto chino. El precio es que un texto auténticamente ruso o griego también verá sus letras señaladas, pero ese texto es rarísimo en lo que hace esta herramienta.

Herramientas relacionadas