Cambiar de codificación (encoding) un archivo de texto (UTF-8, Latin1, UTF-16, etc.)

Algo muy común en Bases de Datos es importar datos de una a otra, por ejemplo de MySQL a postgres, SQL Server a Oracle, etc. El proceso más simple a mi forma de ver es exportar todo a archivos de texto y luego importarlo de nuevo.

A veces nos topamos con el pequeño problema de que el econding del archivo esta por ejemplo en Latin1 y nuestra base de datos tiene otro encoding (UTF-8 por ejemplo).

Yo me he topado con este problema varias veces, pero usualmente usaba un editor de texto como el textpad para poder guardarlo con otra codificación, y mucho antes de darme cuenta que tenía esa opción, cambiaba caracteres como tildes, ñ, etc con un search and replace. :S.

Pero les cuento que en linux existe un comando que nos soluciona esta tarea.

El comando es iconv :

Simplemente tienen que escribir

iconv myarchivo.txt -f [encoding_actual] -t [encoding_deseado] > mynuevoarchivo.txt

Soporta larga cantidad de encodings, yo creo que todos ( pero no estoy seguro), para ver el listado escriban.

iconv -l

De todos modos lean la documentación oficial , o un simple iconv –help.

Bueno, como siempre espero que les sirva y hasta la próxima, que será dentro de unas cuantas horas. 🙂