Comprobación de compatibilidad de archivos de texto

Pega texto o selecciona un archivo de texto sin formato para detectar diferencias de codificación, finales de línea y espacios que pueden afectar a Git, herramientas diff, CI, el Bloc de notas de Windows o herramientas Unix antiguas, aunque el archivo parezca normal en tu editor.

El análisis se realiza localmente en tu navegador. El archivo nunca se carga al servidor.

Cómo usar esta herramienta

  1. Pega texto o selecciona un archivo .txt/.csv/.log/de texto sin formato. El navegador lo lee localmente; no se carga.
  2. Selecciona «Comprobar compatibilidad».
  3. Revisa cada problema señalado, por qué puede afectar a la portabilidad y qué herramientas puede afectar.
  4. Cuando se ofrezca, usa la reescritura segura combinada: normaliza finales de línea, quita un BOM inicial, recorta espacios finales, añade un salto de línea final y corrige caracteres de espacio similares.

Supuestos

Fuentes y datos de referencia

Metodología

El texto se divide en líneas conservando el terminador original de cada una (CRLF, LF, CR sin LF o ninguno), lo que permite detectar mezclas sin perder la información al normalizar. Después se aplican ocho comprobaciones específicas sobre líneas y caracteres. La reescritura combinada solo cubre arreglos mecánicos inequívocos: normalización de finales, eliminación de BOM, recorte de espacios finales, adición del salto final y sustitución o eliminación de espacios visualmente similares. Los caracteres de reemplazo y la sangría mezclada se señalan sin modificación automática: los primeros implican pérdida previa de datos y la sangría correcta depende de una convención de tabulación desconocida.

Ejemplo resuelto

Un archivo editado en Windows y Unix que mezcla finales CRLF y LF

Datos de entrada: línea uno\r\nlínea dos\n

Resultado: Git y otras herramientas diff por líneas comparan terminadores, por lo que puede parecer que todas las líneas cambiaron aunque solo cambiara el contenido de una. Se señala como error y se ofrece normalizar todo a LF.

Un BOM UTF-8 antes de una línea shebang

Datos de entrada: \uFEFF#!/bin/sh\necho "Hola"

Resultado: Un BOM delante de «#!/bin/sh» impide que muchas shells Unix reconozcan la línea shebang. Se señala como aviso y se ofrece quitar el BOM inicial.

Un espacio no separable (U+00A0) pegado en lugar de un espacio normal

Datos de entrada: const total = precio + impuesto;

Resultado: Puede parecer un espacio normal, pero las comparaciones y el análisis exactos lo tratan como otro carácter. Se señala como aviso y se ofrece sustituirlo por un espacio ASCII normal.

Orientación práctica
Errores comunes

Preguntas frecuentes

¿Por qué la mezcla de finales y CR sin LF son errores, pero los espacios finales solo son información?

Los finales mezclados o CR sin LF pueden hacer que herramientas por líneas, como Git, diff o analizadores, interpreten mal la estructura. Los espacios finales son invisibles y no impiden leer; pueden generar ruido en formateadores o linters, un efecto menor e informativo.

¿Por qué no se corrige automáticamente la sangría que mezcla tabulaciones y espacios?

Para convertirla correctamente habría que conocer el ancho previsto de tabulación, por ejemplo 2, 4 u 8 columnas. La herramienta no puede inferir esa convención sin riesgo de cambiar la estructura visual; por eso señala las líneas exactas.

¿Puede detectar la codificación con la que se guardó realmente el archivo?

No. Cuando la herramienta recibe el texto, el navegador ya convirtió los bytes en una cadena JavaScript con su propia estimación o con la codificación seleccionada. Solo puede detectar un posible fallo posterior mediante U+FFFD; no inspecciona los bytes originales.

¿Por qué CRLF y LF mezclados crean diferencias ruidosas y qué detecta esta herramienta?

Las herramientas por líneas pueden considerar distintos los terminadores aunque el texto sea idéntico, haciendo que un cambio pequeño parezca afectar a todo el archivo. Esta comprobación detecta mezclas CRLF/LF, finales CR sin LF y los otros problemas enumerados. Analiza el texto ya decodificado por el navegador, no los bytes originales ni todos los problemas posibles.

Última revisión:

Es un analizador acotado por líneas y caracteres, no un detector de codificación a nivel de bytes. Trabaja con texto que el navegador ya decodificó: no identifica la codificación original ni recupera datos perdidos en una decodificación previa. Reconoce ocho problemas concretos y no analiza otros casos, como pares sustitutos, normalización de caracteres combinados o marcas de dirección de escritura derecha a izquierda.

Esta herramienta ofrece una estimación orientativa basada en los supuestos indicados arriba.

Las preferencias de tema y de herramientas, junto con las listas de herramientas guardadas y recientes, se almacenan solo en este navegador.