Es algo que no se parece a utf-8 o iso-8859-1. Puede ser cualquier otra cosa. Incluso puede no ser un texto en absoluto. Este tipo es una especie de descripción alternativa para cualquier cosa que no contenga cero bytes.
Incluso si en realidad es un archivo de texto (la extensión sugiere que podría serlo), desafortunadamente no hay una forma automática de encontrar la codificación, porque la mayoría de las codificaciones tienen el mismo rango de códigos válidos. Utf-8 se puede distinguir con mucha confianza, pero más allá de eso requiere verificación manual.
Primero debe averiguar en qué idioma se encuentra el archivo para tener una idea de cuál es el contenido correcto y cuál es el contenido confuso y tener una lista de posibles codificaciones. Porque hay millones de codificaciones, pero solo unas pocas se usaron para un idioma en particular.
Luego, debe intentar convertir el archivo de cada codificación posible y para cada conversión que tenga éxito técnicamente (que desafortunadamente será la mayoría de ellas), vea el resultado y compruebe si es correcto o no.
Un corrector ortográfico podría ayudarlo con la revisión, ya que las conversiones incorrectas conducirán a más errores del corrector ortográfico.
Para la conversión, puede usar iconv
(1) , que se instala desde el paquete libc en GNU / Linux o recode
. recode
tiene más opciones y mejor manejo de errores.
Esto no cabe en un comentario, así que aquí va: yo también tenía un archivo extraño en mis manos:
Sabía que esto fue generado por una instalación alemana de Windows XP y contenía algunas diéresis, pero
iconv
no pude convertirlo en algo sensato:Pero dado que
iconv
conoce tanta codificación, utilicé un enfoque de fuerza bruta para descubrir una codificación de fuente de trabajo :Luego iría
result.txt
y buscaría la codificación que no falló. En mi caso,-f CP850 -t UTF-8
funcionó bien, y las diéresis todavía están allí, solo ahora codificadas en UTF-8 :-)fuente