lunes, 4 de junio de 2012

Codificación de caracteres

Ya hemos hablado anteriormente de los problemas con los que nos podemos encontrar a la hora de tratar la codificación de caracteres, principalmente en archivos de configuración.

Vamos a ver un comando que nos permite convertir entre formatos de codificación, el comando iconv. Con iconv se puede pasar de ISO8859-* a UTF-8 y viceversa.

Si queremos cambiar el contenido de un fichero de UTF-8 a ISO8859-15

$iconv -f UTF-8 -t ISO8859-15 -o fichero_de_salida fichero_de_entrada

Si no ponemos la opción -o, el resultado se muestra por la salida estandar.

Si queremos cambiar el nombre de un fichero de ISO8859-15 a UTF-8:

$FITX=fichero_de_entrada
$FITX2=`echo $FITX|iconv -f iso8859-1 -t utf-8 -`
$mv $FITX $FITX2

$iconv mi_fichero -f iso-8859-15 -t utf8 -o temp_utf; cat temp_utf > mi_fichero