Convertir caracteres de latin1 a utf-8


Uno de los problemas que me surgió al migrar de latin1 a utf-8 fue que muchos carácteres que tenía los archivos de backup de la base de datos quedaron en la antigua codificación y no se mostraban correctamente. La misión era convertir estos nombres de archivo a utf-8.

Para resolver ese problema viene en nuestra ayuda el paquete convmv.

El paquete convmv nos permite convertir el nombre de un fichero o de un conjunto de ficheros de una codificación a otra. Por ejemplo para convertir todos los ficheros del directorio actual de Latin1 a UTF-8 debemos ejecutar:

$ convmv -f latin1 -t utf-8 *

Opciones interesantes son ‘-r’ para recursividad y ‘–list’ para conocer la lista de codificaciones soportadas. También tenemos ‘–unescape’ que sustituye las secuencias %hex utilizadas en las URLs. Esto es muy interesante para convertir el nombre de ficheros descargados con wget. Recomiendo la lectura atenta del manual para conocer todas las posibilidades de este programa.

Por último comentar que convmv por defecto funciona en modo test. Es decir, el ejemplo anterior no hace ningún cambio. Para desactivar el modo test basta con añadir la opción –notest.

$ convmv --notest -f latin1 -t utf-8 *

Share
Javier Rodriguez Escrito por:

2 comentarios

  1. Luis M.
    28 de febrero de 2009

    Existe algo similar para Windows? Se copio un disco desde una maquina Linux y los nombres de archivo en Windows han quedado mal, acentos, «eñes», etc… Existe alguna utilidad para convertirlos todos al estilo de las convmv
    Gracias

  2. 3 de marzo de 2009

    Hola Luis M.

    Siento no poder ayudarte en este tema para convertir el nombre de archivo para Windows. No se de ninguna utilidad que haga esto para Windows ni para Linux… aunque Linux no tendra este problema 😉

    Si encuentras solucion a tu problema reportanos lo que hiciste.

    Un saludo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *