Hace días estuve trabajando en un proceso de migración de datos. El proceso se ejecutaba en un sistema Unix, y recibía como entrada un simple fichero de texto plano. Pero, ¿cómo no?, ese fichero había sido generado bajo plataforma Windows.
El tema es que aunque el fichero se podía ver perfectamente con cualquier herramienta Windows (notepad++, ultraedit, y hasta el bloc de notas), incluyendo sus acentos y eñes, en el momento en que lo subía al equipo con Unix todo se descuajaringaba. Incluso si volvía a descargar el fichero (tanto la carga como la descarga utilizando Filezilla), pasaba a no verse tampoco en Windows.
Supongo que algún día terminaré de enterarme de los misterios que encierra la codificación de ficheros. Pero de momento me consuelo con saber que tengo una solución para conseguir que mi fiero no sufra mutaciones horrorosas.
Existe una función llamada iconv que permite cambiar la codificación de ficheros en Unix. En mi caso conseguí lo que quería con un simple
iconv --from-code=ISO-8859-1 --to-code=UTF-8 entrada.txt > salida.txt
Incluso podríamos reducirlo más
iconv -f ISO-8859-1 -t UTF-8 entrada.txt > salida.txt
También podemos utilizar la opción -l (o --list) para ver qué codificaciones hay disponibles en nuestro sistema.
No hay comentarios:
Publicar un comentario
Cualquier aportación será bienvenida