Cambiar la codificación de un fichero en Linux

Algunas veces, cuando intentamos abrir ficheros de Windows en Linux se producen errores derivados de la codificación de caracteres.

Ubuntu, por ejemplo, utiliza la codificación UTF-8 por defecto, mientras que la configuración de español de Windows suele utilizar ISO-8859-1. Por lo tanto, para evitar problemas deberemos cambiar la configuración de los ficheros.

El modo de conocer la codificación de cualquier fichero es utilizar el comando file en la terminal:

$ file -i fichero

Esto nos devolverá el tipo y codificación del fichero que se le indique. Por ejemplo:

$file -i fichero.xml
fichero.xml   application/xml;    charset=iso-8859-1
A la hora de cambiar la codificación del fichero debemos utilizar la orden iconv. Una vez que hemos averiguado la codificación del fichero que queremos tratar averiguamos con qué nombre conoce iconv a esa codificación. Para ello ejecutaremos la orden de consola: 

 $ iconv -l

Se genera con ello una larguísima lista que contiene todos los conjuntos de caracteres conocidos.  Advierte el mensaje que esto no quiere decir necesariamente que todas las combinaciones de estos nombres se puedan usar como parámetros de from y de to en la línea de órdenes. Hay que tener en cuenta que un determinado conjunto de caracteres puede aparecer con varios nombres.

Averiguamos, examinando esa lista, que la orden iconv entiende iso-8859-1 como ISO-8859-1 y que utf-8 es para ella UTF-8. Tal nomenclatura es la que habremos de utilizar. 

En general, si queremos cambiar el fichero fichero_cod1 de la codificación cod1 al fichero fichero_cod2 codificado en la codificación cod2, ejecutaremos la orden: 

$ iconv -f cod1 -t cod2 -o fichero_cod2 fichero_cod1

Donde la f es abreviatura de from"y la t lo es de to. En nuestro ejemplo tendríamos que ejecutar la orden:

$ iconv -f ISO_8859-1 -t UTF-8 -o fichero.xml ficheroSalida.xml

El fichero ficheroSalida.xml es idéntico a fichero.xml, pero codificado en UTF-8 en lugar de iso-8859-1. 

Fuente: Ubuntu Driver

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentarios:

Publicar un comentario