Saltar al contenido
TXT Fácil
☰ Menú
Guía · Archivos TXT

ANSI, UTF-8 y saltos de línea: por qué los aplicativos rechazan tu TXT

Por Equipo Técnico TXT Fácil · Publicado el

Respuesta rápidaLos aplicativos fiscales cuentan posiciones byte por byte y esperan archivos en ANSI (Windows-1252) o ASCII con saltos de línea CRLF. En UTF-8 una ñ o una tilde ocupa dos bytes y corre todos los campos; el BOM agrega bytes invisibles al inicio y los saltos LF de Mac pueden unir todas las líneas en una.

Un archivo que "se ve bien" y aun así falla

Es una de las situaciones más frustrantes: abrís el TXT, las columnas están alineadas, los importes tienen los ceros que corresponden y el aplicativo igual responde "longitud de registro inválida" o "formato incorrecto en la línea 37". En muchos casos el problema no está en los datos sino en algo que no se ve en pantalla: la codificación del archivo y el tipo de salto de línea.

Qué es la codificación de un archivo de texto

Una computadora guarda cada letra como uno o más números (bytes). La codificación es la tabla que dice qué número corresponde a cada letra. Para los archivos fiscales importan dos:

Para un archivo sin tildes ni ñ, ANSI y UTF-8 son idénticos byte por byte. La diferencia aparece apenas una razón social dice "MUÑOZ" o "CONSTRUCCIÓN".

Por qué esto rompe un diseño de ancho fijo

Los diseños de registro de ARCA, ARBA, AGIP o SIFERE no tienen separadores: el aplicativo sabe que el importe empieza en la posición 109 porque cuenta 108 bytes desde el principio de la línea. Si la razón social tiene una ñ en UTF-8, ese campo ocupa un byte más de lo previsto y todo lo que viene después se corre una posición. El aplicativo lee el último dígito de un importe como el primero del siguiente campo, encuentra letras donde esperaba números y rechaza la línea.

Por eso el error casi nunca menciona la ñ: el aplicativo detecta el síntoma, que aparece varios campos más adelante.

El BOM: tres bytes invisibles

Algunos editores, como el Bloc de notas en ciertas versiones, agregan al principio de los archivos UTF-8 una marca llamada BOM (Byte Order Mark), formada por tres bytes que no se ven. El aplicativo los lee como parte de la primera línea, que queda tres caracteres más larga que las demás. Si te rechazan solo la línea 1 y las demás pasan, sospechá del BOM.

Saltos de línea: CRLF, LF y CR

El final de cada línea también se guarda con caracteres invisibles, y no todos los sistemas usan los mismos:

TipoBytesQuién lo usa
CRLFRetorno de carro + salto de líneaWindows, y lo que esperan los aplicativos fiscales
LFSolo salto de líneaMac actuales, Linux, muchos sistemas web
CRSolo retorno de carroMac muy antiguas

Un archivo con saltos LF puede abrirse bien en un editor moderno y, sin embargo, el aplicativo lo lee como una sola línea gigante, o cuenta un byte menos por registro. Al revés, algunos validadores cuentan el CR como parte del registro si el archivo mezcla tipos de salto.

Cómo guardar correctamente

En Windows, con el Bloc de notas

En Mac, con TextEdit

Lo que conviene evitar

Tildes en ANSI: ¿se pueden usar?

En ANSI una tilde ocupa un solo byte, así que no corre las posiciones. Aun así, varios aplicativos validan que los campos de texto contengan solo letras sin acento, números y algunos signos. Lo más seguro es reemplazar á por a, ñ por n y así con el resto. Es lo que hacen los generadores de TXT Fácil al armar cada archivo y lo que hace el limpiador ANSI con un archivo existente.

Diagnóstico rápido

¿Tenés que armar el archivo? Hacelo desde tu Excel, gratis y sin subir datos. Abrir el limpiador ANSI →