Alguna vez me he topado con aplicaciones que trabajan con UTF-8 sobre un sistema cuya codificación por defecto es ISO-8859-1. Así, cuando tengo un método que lee un fichero de texto que he creado con el nano, surgen problemas de codificación.

En Linux tenemos un par de comandos que nos ayudan a ver qué codificación tiene un fichero y a poder cambiarle la misma. Se trata de los comandos file e iconv.

El comando file determina el tipo de un fichero.

alex@home:/home/alex$ file fichero.txt
fichero.txt: ISO-8859 text, with CRLF line terminators

Así, hemos comprobado que efectivamente este fichero de texto no tiene la codificación deseada para nosotros. Es aquí cuando entra en juego el comando iconv, cuya funcionalidad es convertir de una a otra.

La manera de invocarlo es iconv -f fichero_origen -t codificacion_destino fichero_entrada

alex@home:/home/alex$ iconv -f ISO-8859-1 -t UTF-8 fichero.txt > fichero_2.txt

alex@home:/home/alex$ file -i fichero_2.txt
fichero_2.txt: text/plain; charset=utf-8

Así, substituyendo el fichero original por el nuevo, ya lo tenemos en la codificación deseada.

Tip: el comando iconv ––list devuelve una lista de todos los sistemas de codificación conocidos y con los que teóricamente nos permite jugar.

Más información:

Anuncios