Changer l’encodage utilisé pour les noms de fichiers

Vous venez de passer de la SARGE à ETCH, ou bien vous venez d’installer ETCH, et vous constatez que l’encodage du “file system” est passé à l’UTF-8. Les choses auraient pu en rester là mais vos noms de fichier qui contenaient un caractère spécial tel que, par exemple, un caractère accentué, apparaissent maintenant avec un caractère bizarre. La conséquence possible est que certaines applications ont du mal à ouvrir de tels fichiers.

Je n’ai pas eu l’occasion de vérifier ce procédé sur la DEBIAN LENNY. Si vous avez une information à ce sujet, n’hésitez pas à déposer un commentaire ;-)

Sachez qu’il existe un paquet nommé “convmv” qui permet, une fois installé, d’utiliser la commande du même nom “convmv”. Cette commande vise précisément à rectifier les noms de fichiers et de répertoires mal “encodés” pour les renommer de manière appropriée.

Typiquement, un exemple d’usage de la commande pourrait être :

convmv -f latin1 -t utf8 -r *

ce qui veut dire que les noms de fichiers qui utilisent l’encodage “latin1” doivent être simplement listés à l’écran avec une proposition de renommage en appliquant l’encodage “utf8”, à appliquer non seulement au répertoire courant, mais aussi à l’ensemble des noms des sous-répertoires et des noms de tous les fichiers.
Si cette liste convient, il est alors possible de procéder cette fois-ci au véritable renommage en utilisant l’option ”–notest” comme suit :

convmv -f latin1 -t utf8 -r –notest *

La difficulté dans ce type de commande est de connaître l’encodage d’origine et l’encodage cible. Notez que la commande “locale” peut vous aider à y répondre. Par exemple, si elle donne un résultat tel que :

LANG=fr_FR.UTF-8
LC_CTYPE=“fr_FR.UTF-8”
LC_NUMERIC=“fr_FR.UTF-8”
LC_TIME=“fr_FR.UTF-8”
LC_COLLATE=“fr_FR.UTF-8”
LC_MONETARY=“fr_FR.UTF-8”
LC_MESSAGES=“fr_FR.UTF-8”
LC_PAPER=“fr_FR.UTF-8”
LC_NAME=“fr_FR.UTF-8”
LC_ADDRESS=“fr_FR.UTF-8”
LC_TELEPHONE=“fr_FR.UTF-8”
LC_MEASUREMENT=“fr_FR.UTF-8”
LC_IDENTIFICATION=“fr_FR.UTF-8”
LC_ALL=

C’est que sur la machine où vous avez tapé la commande vous êtes en UTF-8.

Cette entrée a été publiée dans Debian, Linux. Vous pouvez la mettre en favoris avec ce permalien.

Les commentaires sont fermés.