TTabulens ENPT Windows Abrir la app

Caracteres raros en DBF: cómo dar con la codificación correcta

Un archivo DBF no tiene ninguna marca que diga «esto es UTF-8». La página de códigos la nombra un único byte del encabezado o no la nombra en absoluto, y entonces hay que deducirla del contenido. Así es como «Canción» se convierte en «Canci¢n» o en «Canci¢n».

Actualizado 2026-09-30 · formato DBF

De dónde viene el problema

DBF es un formato de un byte por carácter: cada carácter ocupa exactamente un byte. Qué letra representa un byte depende de la página de códigos. La «ñ» se guarda como 0xA4 en la página DOS 437 y en la 850, pero como 0xF1 en windows-1252. Si se lee con la tabla equivocada, sale otro carácter:

Bytecp437 (DOS, EE. UU.)cp850 (DOS, Europa Occidental)windows-1252
0xA4ññ¤
0xF1±±ñ
0xA2óó¢
0xE9ΘÚé

El programa que escribió el archivo conocía su propia tabla. El programa que lo lee debe tomarla del encabezado, o adivinarla.

El controlador de idioma: el byte 29 del encabezado

El byte 29 del encabezado de un DBF (contando desde cero) contiene el Language Driver ID, un código que nombra la página de códigos. Los valores más habituales:

CódigoCodificaciónOrigen típico
0x01cp437programas DOS en EE. UU., dBase y FoxPro tempranos
0x02cp850programas DOS en Europa Occidental y en España y Latinoamérica
0x03, 0x57windows-1252programas de Windows, Visual FoxPro
0x64, 0x1Fcp852programas DOS en Europa Central
0xC8windows-1250programas de Windows en Europa Central
0x00no especificadocerca de la mitad de los archivos reales

El byte también puede ser incorrecto: un archivo lo creó un programa, lo amplió otro y el encabezado conservó su valor original. Es una pista sólida, no una garantía.

Cómo leer los síntomas

Un archivo cp850 leído como windows-1252: las letras con tilde se convierten en símbolos
Un archivo cp850 leído como windows-1252: las letras con tilde se convierten en símbolos
La página de códigos detectada a partir del propio archivo: los nombres se leen bien
La página de códigos detectada a partir del propio archivo: los nombres se leen bien

El patrón de la basura dice qué ha pasado:

Qué hacer en la práctica

Otra sutileza: los nombres de campo también son texto y se decodifican con la misma tabla. Si los encabezados de columna salen rotos pero los datos están bien, se escribieron en codificaciones distintas.

Por qué no convertir sin más a UTF-8

La tentación es comprensible, pero DBF no puede contenerlo: la longitud del campo se da en bytes y las letras con tilde ocupan dos bytes en UTF-8. Un campo C(20) admite veinte letras latinas sin tilde, pero menos con tilde: lo que pasa del límite se corta en silencio.

Por eso, al exportar de vuelta a DBF, la codificación es siempre de un byte y las longitudes de campo se recalculan a partir de los datos reales en la codificación de destino. Para obtener texto UTF-8 de un DBF, exporte a CSV, JSON o XLSX.

Preguntas frecuentes

¿Puedo averiguar la codificación sin abrir el archivo?

Mire el byte 29 del encabezado en un editor hexadecimal. Tenga en cuenta que a menudo es cero o incorrecto: el contenido es más fiable.

¿Por qué un programa lee bien el archivo y otro no?

Cuando falta el controlador de idioma, los programas recurren a soluciones distintas: uno usa la página de códigos del sistema Windows y otro supone una de DOS. El archivo es el mismo.

¿Cambiar la codificación en un visor modifica el archivo?

No. Solo cambia cómo se muestran los bytes. El archivo se queda como está hasta que usted guarde cambios de forma explícita.

Su archivo no sale de su ordenador. La lectura se hace en el navegador, en un hilo en segundo plano. La política de seguridad de la página prohíbe enviar datos a direcciones de terceros: puede comprobarlo en las herramientas para desarrolladores. Tras la primera visita, la aplicación funciona también sin conexión.
Abrir la aplicación Descargar para Windows

Gratis para usar. Su archivo no se sube a ningún servidor. Versión para Windows — 4.6 MB, sin instalación: detalles. Pro — 29 USD una sola vez: precio.

Más sobre el tema