¿Por qué tu OCR genera
texto basura? 3 causas raíz y soluciones
Pasaste un documento por OCR, pero en lugar de texto limpio obtuviste é, ’, cuadros llenos de signos de interrogación o secuencias que parecen escritas a los golpes. Este fenómeno —llamado mojibake (文字化け, japonés para "transformación de caracteres")— tiene una causa técnica, y una vez que la entiendes, solucionarlo es sencillo.
Conclusiones clave
- Ese
éque ves donde debería iréno son datos corruptos: son bytes UTF-8 interpretados con una lente Windows-1252. Cambiar la lente de lectura restaura al instante todos los caracteres del archivo. - Tres causas distintas generan texto basura en OCR —codificaciones incorrectas, mapas de fuentes rotos y sustituciones por baja resolución— y cada una deja una huella diagnóstica que te indica qué solución aplicar antes siquiera de abrir una herramienta.
- Los casos más difíciles de texto basura ocurren porque tu OCR está leyendo una capa oculta de texto dañada dentro del PDF, no la imagen visual. Forzar al OCR a leer la página renderizada directamente hace que la basura desaparezca.
Si ves caracteres extraños, no estás solo. Existe una comunidad en Reddit dedicada a identificar de qué idioma "podría ser" un texto con mojibake. El foro de la comunidad de Adobe Acrobat tiene decenas de hilos sin resolver de usuarios cuyo OCR en japonés produjo cadenas como 蟷エ莉」繧「繧ク繧「縺ォ縺翫¢繧九げ繝ュ繝シ繝舌Ν蛹悶� en lugar de texto legible. La biblioteca ftfy de Python — una herramienta especializada en corregir mojibake — se ha descargado millones de veces porque es un problema recurrente en toda la industria.
Lo bueno: el texto ilegible del OCR no es daño aleatorio. Sigue patrones predecibles causados por uno de tres mecanismos raíz. Una vez que identificas el patrón, la solución es repetible.
Causa 1 — Error de Codificación: El Culpable Más Común
El síntoma: Los caracteres acentuados, símbolos de moneda y comillas inteligentes se convierten en basura de varios caracteres. El español corazón se vuelve corazón. El símbolo del euro € aparece como €. Las comillas curvas “se ven asíâ€. El documento es mayormente legible, pero cada carácter no ASCII está mal.
Por qué ocurre: La codificación de caracteres es el acuerdo entre un archivo y un lector sobre cómo mapear bytes a letras. Cuando el motor de OCR lee el archivo usando una codificación (por ejemplo, UTF-8) pero el archivo se creó con otra (por ejemplo, Windows-1252), los mismos bytes se asignan a caracteres completamente diferentes. El resultado es una corrupción sistemática — como leer un mapa dibujado en pulgadas como si fuera en centímetros. Cada medida está desfasada por el mismo factor, y el patrón de error te indica exactamente qué conversión se aplicó.
Cómo identificar el tipo de error de codificación
Ciertos patrones de mojibake son tan característicos que se puede diagnosticar el error de codificación con solo mirar el resultado:
| Ves esto | Original era | Leído como |
|---|---|---|
é por é | UTF-8 | Latin-1 / Windows-1252 |
’ por ' | UTF-8 | Windows-1252 |
– por – (guion largo) | UTF-8 | Windows-1252 |
日本 por 日本 | Shift-JIS | UTF-8 o Latin-1 |
Cuadros ▯▯▯ o ???? | Unicode | Falta fuente / codificación incorrecta |
Cómo corregir errores de codificación
Opción 1: Guardar de nuevo con la codificación correcta. Abre el documento original (o la salida del OCR) en un editor de texto como VS Code o Notepad++ que permita cambiar la codificación explícitamente. Usa Guardar como → UTF-8. Si el archivo era originalmente Windows-1252, guardarlo de nuevo como UTF-8 con detección correcta de caracteres suele resolverlo.
Opción 2: Usar herramientas de reparación de mojibake. Para correcciones masivas o automatizadas, la librería ftfy de Python (pip install ftfy) detecta y revierte automáticamente errores de codificación comunes — incluyendo corrupción multicapa donde el texto se decodificó con la codificación incorrecta, luego se recodificó y se decodificó mal una segunda vez. Una sola llamada a ftfy.fix_text() resuelve la gran mayoría de errores de codificación simple y doble.
Opción 3: Forzar al motor OCR a releer la capa de imagen en lugar de la capa de texto. Muchos problemas de texto distorsionado en PDF provienen de que el PDF subyacente tiene una capa de texto rota o con codificación personalizada, mientras que la capa visual de imagen está perfectamente bien. Si configuras tu herramienta OCR para tratar la página como imagen (en lugar de extraer de la capa de texto existente), volverá a reconocer todos los caracteres a partir de los glifos renderizados — saltándose cualquier daño de codificación. En Adobe Acrobat, esto significa elegir "ClearScan" o "Imagen con texto oculto (exacta)" en lugar de "Imagen con texto oculto (compacta)" en la configuración de OCR.
Clave: El mojibake por error de codificación es el más reparable — son datos leídos con la llave equivocada, no datos perdidos. Encuentra la llave correcta y cada carácter se recupera.
Causa 2 — Codificación de fuente: cuando el glifo se ve bien pero el código de carácter es incorrecto
Síntoma: El PDF se renderiza perfectamente en pantalla — cada carácter se ve correcto — pero copiar texto o ejecutar OCR produce incoherencias: GLYPH<38>, 9%)A:\2A o secuencias repetidas de caracteres sin sentido. La página visual está limpia; la capa de texto es un desastre.
Por qué ocurre: Un archivo PDF tiene dos capas de "texto": los glifos visuales (lo que se ve en pantalla) y la asignación carácter-a-glifo (lo que lee un extractor de texto o motor de OCR). Normalmente ambas capas coinciden. Pero en PDFs mal generados, el archivo de fuente puede contener codificación de glifos personalizada — las formas de los glifos son correctas (la página se ve bien), pero los códigos de carácter a los que se asignan no son estándar o carecen de asignaciones Unicode.
Esta situación es sorprendentemente común. Las fuentes de subconjunto — donde solo se incluyen los caracteres exactos usados en el documento — suelen usar identificadores de carácter (CID) no estándar para la asignación interna. Cuando un extractor de texto intenta interpretar esos CID usando una tabla de codificación estándar, obtiene basura. Un informe de problema en el proyecto Docling mostró exactamente esto: un PDF se veía bien, el OCR estaba configurado como do_ocr=True, y la salida era '() +,- .+.. /01 02034567638469:; 4<8:=> — porque la codificación interna de la fuente no se asignaba a Unicode estándar.
Escenarios donde es más probable la basura por codificación de fuente:
- PDFs generados por software especializado: Herramientas CAD (AutoCAD, Archicad), generadores de informes ERP o controladores heredados de impresión a PDF suelen incrustar fuentes con tablas de codificación personalizadas. Un debate comunitario en foros de Adobe describe a un usuario de Archicad cuyos PDFs tenían Segoe UI incrustada — y aún así producían texto ilegible, porque la incrustación por sí sola no garantiza una asignación de caracteres estándar.
- Documentos PDF/A o firmados digitalmente: Los formatos de documentos orientados al cumplimiento normativo a veces eliminan o modifican la información de asignación de caracteres durante el proceso de conversión.
- Documentos escaneados con una capa de texto oculta añadida por un pase de OCR anterior: Si el OCR anterior produjo caracteres incorrectos y el PDF se guardó con esa capa de texto incrustada, la extracción posterior lee el texto erróneo almacenado en caché en lugar de ejecutar un nuevo reconocimiento.
- Documentos con escrituras no latinas: Las fuentes japonesas Shift-JIS, coreanas EUC-KR y chinas codificadas en GB son fuentes frecuentes de desajuste de codificación cuando el visor de PDF o el motor de OCR usan por defecto una página de códigos diferente.
Cómo corregir la codificación de fuentes dañada
Opción 1: Forzar un nuevo OCR sobre la capa de imagen. Es la solución más fiable. Indica a tu herramienta de OCR que ignore la capa de texto existente y lea directamente de las imágenes de las páginas renderizadas. En Acrobat Pro, ve a Herramientas → Escanear y OCR → Reconocer texto → En este archivo y asegúrate de que el motor de OCR trate el documento como una imagen escaneada. En ocrmypdf, usa la bandera --force-ocr para sobrescribir completamente la capa de texto existente.
Opción 2: Convertir a un formato de imagen sin pérdida y volver a aplicar OCR. Exporta las páginas del PDF como archivos TIFF o PNG de alta resolución (al menos 300 DPI) y luego aplica OCR sobre esas imágenes. Esto elimina todos los metadatos de codificación de fuentes dañados y proporciona al motor de OCR una fuente visual limpia. En el hilo de la comunidad de Adobe Acrobat sobre mojibake japonés, se encontró que exportar a TIFF y volver a aplicar OCR resolvió el problema donde el OCR directo del PDF había fallado.
Opción 3: Verificar la incrustación de fuentes con Preflight. En Adobe Acrobat Pro, usa Herramientas → Producción de impresión → Preflight y ejecuta un perfil de análisis de fuentes. Esto te muestra si las fuentes están completamente incrustadas, incrustadas como subconjunto, o faltan, y si incluyen mapas de caracteres Unicode. Si una fuente está incrustada como subconjunto sin las tablas /ToUnicode adecuadas, esa es la prueba definitiva.
Causa 3 — Resolución y confusión de caracteres: Cuando la calidad de la imagen falla al OCR
El síntoma: Los caracteres individuales son incorrectos de formas que parecen sustituciones razonables: 5 se convierte en S, 0 en O, 1 en l (L minúscula), rn en m. La puntuación desaparece. Los trazos finos en caracteres como e o a faltan, haciendo que las palabras parezcan abreviadas. El resultado no es basura total, sino sutil y frustrantemente incorrecto.
Por qué ocurre: Los motores de OCR funcionan comparando formas de caracteres con modelos de glifos conocidos. Cuando la imagen de entrada tiene una resolución insuficiente, los píxeles disponibles no son suficientes para distinguir entre caracteres visualmente similares. Una letra S a 72 DPI ocupa aproximadamente 10–12 píxeles verticalmente; a esa resolución, el serif de un 5 y la curva de una S pueden verse idénticos. Esto no es un problema de codificación; es una restricción fundamental de la teoría de la información. Si la imagen no contiene suficientes píxeles para representar las características distintivas de cada carácter, ningún motor de OCR, por avanzado que sea, puede hacer una suposición perfecta cada vez.
Este tipo de error es especialmente frecuente en:
- Fotos de documentos tomadas con el teléfono con poca luz o en ángulo
- Páginas enviadas por fax o fotocopiadas repetidamente, donde cada generación pierde detalle
- Escaneos antiguos de microfilm de registros históricos
- Documentos con tamaños de fuente pequeños (8 puntos o menos) escaneados a 200 DPI o menos
Cómo solucionar texto ilegible por problemas de resolución
Opción 1: Aumentar la resolución de entrada. El estándar de la industria para OCR es mínimo 300 DPI, recomendándose 400–600 DPI para texto pequeño o denso. Si trabajas con una foto de teléfono, los pasos de preprocesamiento de imagen como escalado, nitidez y enderezamiento pueden ayudar antes de enviar la imagen al motor OCR.
Opción 2: Usar una herramienta de extracción basada en visión en lugar de OCR tradicional. Esta es la solución estructural. Los motores OCR tradicionales (Tesseract, ABBYY, Adobe OCR) dependen del reconocimiento de patrones carácter por carácter — por eso un píxel faltante puede convertir un 5 en una S. La extracción moderna con modelo de lenguaje-visión (VLM) (el enfoque usado por ImageToTable.ai y herramientas similares) lee palabras y oraciones completas como objetos visuales, usando contexto semántico para resolver ambigüedades. Cuando el motor ve "Order S units" y el contexto es una factura, entiende que S probablemente es 5 — no porque reconozca mejor la forma del carácter, sino porque "Order 5 units" tiene sentido mientras que "Order S units" no. Para una explicación de cómo esto difiere del OCR tradicional, lee qué es el OCR y de dónde vienen sus limitaciones.
Opción 3: Aplicar preprocesamiento de imagen antes del OCR. Incluso un preprocesamiento simple puede reducir drásticamente la confusión de caracteres. Convertir a escala de grises, aplicar umbral adaptativo para binarizar el texto y eliminar ruido (motas, patrones de fondo) le da al motor OCR una señal más limpia. Consulta nuestra guía para mejorar la precisión del OCR para flujos de trabajo de preprocesamiento probados en campo.
Cuándo escalar: qué hacer si ninguna solución funciona
Si has verificado la codificación, revisado las fuentes y preprocesado la imagen — y el resultado sigue siendo ilegible — es posible que la herramienta no sea adecuada para el tipo de documento. Documentos con escrituras mixtas, fuentes decorativas, notación matemática o sellos superpuestos llevan al OCR tradicional más allá de sus límites de diseño.
En estos casos, la solución práctica es cambiar a una herramienta de extracción con IA de visión sin plantillas que lea documentos de forma holística. Herramientas como ImageToTable.ai evitan por completo los problemas de codificación y fuentes porque extraen el significado de la representación visual de la página, no de una capa de texto preexistente. Subes el documento, nombras las columnas que deseas y la IA extrae los datos comprendiendo la estructura visual y semántica del documento — sin capa de texto dependiente de fuentes ni tablas de codificación de las que preocuparse.
Preguntas frecuentes
¿Por qué mi PDF se ve bien en pantalla pero al copiar el texto sale ilegible?
Casi siempre es un problema de codificación de fuente (Causa 2). La capa visual del PDF usa glifos con la forma correcta, pero la asignación subyacente de caracteres a Unicode está rota o no es estándar. El lector de PDF renderiza los glifos perfectamente, pero al copiar texto — o cuando un motor de OCR lee la capa de texto oculta — sigue el mapa roto y produce basura. La solución es aplicar OCR directamente sobre la capa de imagen, ignorando la capa de texto existente.
¿Puedo corregir automáticamente el texto ilegible del OCR con software?
Sí, para el mojibake por desajuste de codificación (Causa 1), herramientas como ftfy (Python), iconv (Linux/macOS) y la función "detectar codificación" en editores como VS Code pueden identificar y revertir automáticamente la corrupción. Para problemas de codificación de fuente y resolución, la reparación automática es menos fiable porque el problema no está en la asignación byte a carácter, sino en los datos de origen. Esos casos requieren reprocesar con ajustes diferentes o un método de extracción distinto.
¿Una mayor DPI siempre soluciona el OCR ilegible?
Una mayor DPI corrige la confusión de caracteres relacionada con la resolución (Causa 3), pero no tiene efecto en los desajustes de codificación (Causa 1) ni en los problemas de codificación de fuente (Causa 2). Escanear un documento a 600 DPI no servirá si el archivo original es un PDF con tablas /ToUnicode rotas — solo se crea una versión de mayor resolución del mismo problema subyacente. Diagnostique la causa raíz antes de invertir en volver a escanear.
¿ImageToTable.ai maneja el texto ilegible mejor que el OCR tradicional?
ImageToTable.ai utiliza un modelo de lenguaje-visión que lee el contenido visual del documento — no una capa de texto intermedia —, por lo que evita tanto las causas de texto ilegible por desajuste de codificación como por codificación de fuente. La IA procesa directamente la imagen de la página renderizada, por lo que las asignaciones CID personalizadas, las fuentes de subconjunto y las tablas /ToUnicode faltantes no interfieren. Para la ambigüedad relacionada con la resolución, la comprensión semántica del contexto del documento por parte del modelo proporciona una capa adicional de corrección de la que carece el OCR basado en caracteres. Sin embargo, si la imagen de origen está muy degradada (borrosa, resolución extremadamente baja, parcialmente ilegible), ningún enfoque —incluida la IA de visión— puede recuperar información que nunca fue capturada.
El texto OCR distorsionado no es aleatorio — esto es lo que debe hacer
Cuando el resultado del OCR parece un alfabeto revuelto, es tentador culpar al software y seguir adelante. Pero las tres causas aquí cubiertas — errores de codificación, problemas de codificación de fuente y confusión de caracteres por resolución — tienen cada una una huella específica y una solución correspondiente. Aprender a distinguirlas convierte un misterio frustrante en un diagnóstico repetible.
Empiece por el síntoma: basura de varios caracteres alrededor de acentos (como é) → error de codificación, solución con recodificación o ftfy. Renderizado perfecto en pantalla pero el OCR produce glifos no relacionados → problema de codificación de fuente, solución forzando OCR sobre la imagen. Caracteres individuales intercambiados por similares (5→S) → problema de resolución, solución con preprocesamiento o una herramienta consciente del contexto.
La última opción — pasar de OCR basado en caracteres a extracción basada en visión — evita las causas raíz al leer el documento como lo haría un humano: entendiendo el significado en lugar de emparejar patrones de píxeles o recorrer tablas de codificación.
Pruebe con sus propios documentos distorsionados. Vea si el problema desaparece cuando el motor ya no depende de una capa de texto.