Podemos ver la codificación de caracteres de un archivo de una forma muy sencilla con el comando file.
file -i archivo.txt
El parámetro -i indica a file que muestre el tipo de codificación mime usado por el mismo.
Una vez sabemos el tipo de codificación, podemos convertirla si lo necesitamos con el comando iconv.
iconv -f ISO-8859-1 -t UTF-8//TRANSLIT archivo.txt -o archivo-nuevo.txt
En el ejemplo anterior estamos convirtiendo un archivo con formato ISO-8859-1 (comúnmente usado por Windows en paises latinos como España) a UTF-8, esto es muy habitual cuando por ejemplo en un archivo de texto encontramos símbolos extraños como � � en lugar de caracteres especiales o acentuados debido al cambio de juego de caracteres usado (linux trabaja por defecto con UTF-8).
El parámetro -f (from encoding) es para indicar el juego de caracteres usado por el archivo.
El parámetro -t (to encoding) es para indicar el juego de caracteres al que queremos convertir el archivo.
Con //TRANSLIT los caracteres que se convierten se transcriben según sea necesario y si es posible hacerlo. En caso de que un carácter no se pueda representar en el conjunto de caracteres objetivo, se puede aproximar a través de uno o más caracteres de aspecto similar.
En consecuencia, cualquier carácter que no pueda transliterarse y que no esté en el conjunto de caracteres objetivo se reemplaza con un signo de interrogación (?) en la salida.
Después se especifica la ruta/nombre del archivo a convertir y con el parámetro -o indicamos la ruta del archivo de salida (output) resultante.
Si necesitamos ver los juegos de caracteres disponibles podemos usar el comando iconv -l
No hay comentarios:
Publicar un comentario