A continuación veremos como cambiar la codificación del nombre de los ficheros. Para ver como cambiar la codificación de su contenido visita este artículo
Suele ocurrir, al copiar archivos con acentos o ñ en su nombre, desde otros sistemas, como Windows o MAC, que Linux cambia estos símbolos por ? y añade al final del nombre del fichero (codificacion no valida). y puede darnos problemas para abrir
Esto ocurre porque nuestro sistema tiene una codificación de caracteres diferente al sistema de donde copiamos los archivos, por lo que vamos a ver como cambiar la codificación del nombre del documento (no del contenido) a la misma de nuestro sistema para no tener problemas.
El primer paso es saber la codificación de nuestro sistema con este comando:
echo $LANG
En nuestro caso devuelve es_ES.UTF-8.
Para cambiar la codificación del nombre del fichero (no del contenido) por la deseada (en este caso utf8), ejecutaremos este comando:
convmv -f cp850 -t utf-8 nombrefichero
Así el comando no modifica nada, pero nos mostrará como quedará el nombre del fichero antes de hacer nada. En caso de que nos los muestre como queremos, le añadiremos el parámetro --notest para que ahora sí modifique el fichero:
convmv --notest -f cp850 -t utf-8 nombrefichero
Si da problemas, tendremos que averiguar la codificación inicial del fichero (en este caso el cp850).
El comando convmv sirve para cambiar solo la codificación del nombre del fichero, para cambiar la codificación del contenido usaremos el comando iconv.
También puede resultarnos útil el comando enca.
- Detectaremos la actual codificación del fichero que nos da problemas con chardet, que instalaremos así:
sudo pip install chardet
chardet nombrefichero
- Ahora que sabemos la codificación que tiene el fichero, instalaremos el programa para cambiarla:
sudo apt-get install convmv
- Antes de hacer el cambio comprobaremos si el fichero resultante es el deseado. Por ejemplo, para pasar de latin1 a utf8:
convmv -f latin1 -t utf-8 nombrefichero
- Si el resultado del comando anterior es el deseado, añadiremos el parametro --notest para que realice los cambios:
convmv --notest -f latin1 -t utf-8 nombrefichero
Para comprobar la lista de juego de caracteres que soporta el comando convmv ejecutamos
convmv --list
El comando convmv sirve para cambiar solo la codificación del nombre del fichero, para cambiar la codificación del contenido usaremos el comando iconv.
Deja una respuesta