martes, 27 de abril de 2010

Cambiar la codificación de un archivo

No les ha ocurrido (sobre todo si programan) que por alguna razón (mayormente descuido) un archivo les termina con una codificación incorrecta y por eso terminan teniendo un montón de caracteres razón donde deberían tener acentos, tildes u otros....

Pues bien, existe una solución sencilla a este problema:

iconv es un útil comando que nos permite hacer cambio de codificación en archivos.... se usa así:

$ iconv -f ISO_8859-1 -t UTF-8  ArhivoOrigen > ArchivoDestino

para saber el formato en el que esta actualmente el archivo pueden usar file (aquí un manual)

Aparte de iconv existe recode.... que tambien nos permite realizar el cambio, lo unico es que no forma parte de la distro (pero se instala de repositorios).

# aptitude install recode


Como alternativa tambien tenemos tcs, el cual, al igual que recode no viene en el sistema por defecto pero podemos instalar de forma sencilla:

# aptitude install tcs

Y lo usamos ejecutando:

$ tcs -t tipo_charset_deseado fichero > fichero_resultante

Ahora, Incluso podemos hacer estas conversiones en mysql. Para ello vasta con ejecutar:

ALTER TABLE bla CONVER TO CHARACTER SET utf8;

Y en Vim tambien es posible.... :

set enc=utf-8


1 comentario:

Anónimo dijo...

Hola! Antetodo, gracias por tu aportación a la comunidad.
Por cosas de esas extrañas que usamos los programadores...realmente, yo me incluiria dentro del sector de "manipuladores"..., he necesitado convertir un texto de iso.8859-15 a utf8, y he utilizado "tcs", el resultado no ha sido óptimo. Leyendo el "manpage" he visto que la codificación 8859-15 no entra dentro de las codificaciones soportadas, así que lo he intentado con 8859-1, pero claro, el símbolo del euro se ha colgado.
Una observación más, el comando que he utilizado es
tcs -f 8859-1 file1 > file2
Tal como figura en el ejemplo del manpage, para conversiones a utf-8.
Probaré con iconv, a ver que se cuece...Hasta pronto!