#1 Le 30/12/2007, à 00:21
- Thibaud
script de conversion d'encodage des noms de fichiers
Bonjour !
J'ai des difficultés avec des noms de fichiers. J'ai tout d'abord utilisé un script pour convertir de l'iso 8859-1 vers l'UTF-8 avec iconv. Ca fonctionne à merveille pour les fichiers anciennement codés en iso 8859-1.
Or, pour les fichiers codés en ISO-8859-1 mais interprétés en ISO-UTF8, ça empire les choses !
Donc, j'ai besoin de faire un test d'encodage pour savoir :
1. S'il y a un mauvais encodage
2. Dans quel sens faire la conversion
Par exemple, l'instruction
echo "La pensàƒÂ©e mythique est bricolage.bmp" | iconv -f ISO-8859-1 -t UTF-8
me rend :
La pensàƒÂƒà‚©e mythique est bricolage.bmp
En revanche, si j'écris
echo "La pensàƒÂ©e mythique est bricolage.bmp" | iconv -f UTF-8 -t ISO-8859-1
J'obtiens bien
La pensée mythique est bricolage.bmp
Voici le script en question :
find . | while read filename
do
newfilename="$(echo "$filename" | iconv -f ISO-8859-1 -t UTF-8)"
if [ "$filename" != "$newfilename" ]
then
echo '!!!' $filename
echo '==>' $newfilename
mv "$filename" "$newfilename"
fi
done
Enfin, ne faudrait-il pas théoriquement tout convertir en UTF-8 ?
Merci de l'aide,
Thibaud.
PS : origine du script que j'ai modifié :
http://forum.ubuntu-fr.org/viewtopic.php?id=130112
Bienvenue sur mon site perso : http://thibaud.hulin.free.fr/dokuwiki
Pour l'utilisabilité et l'ergonomie des logiciels libres : http://ergolibre.tuxfamily.org
Apprentissage libre des langues : http://polyglotte.tuxfamily.org et http://www.akademia.ch/websites/ergolang/
Hors ligne
#2 Le 30/12/2007, à 00:41
- Alain.g
Re : script de conversion d'encodage des noms de fichiers
Salut
Pour convertir les noms de fichiers en UTF-8, je te conseille convmv
Très simple et efficace.
Par défaut, s'il détecte que le nom de fichier est déjà encodé en UTF-8, il le passera.
Il est toutefois plus prudent de tester avant, c'est à dire sans mettre l'option --notest
Dernière modification par Alain.g (Le 30/12/2007, à 00:42)
Xubuntu Karmic !
Hors ligne
#3 Le 30/12/2007, à 09:46
- aleph
Re : script de conversion d'encodage des noms de fichiers
J'ai écrit plusieurs fois des commentaires *corrects* à ce sujet. Malheureusement étant visiteur, il m'est impossible de rechercher les messages (ce fut le cas auparavant).
Deux remarques:
Si les fichiers sont sur une partition fat32, l'(en)codage des noms de fichiers n'est pas iso-quelquechose mais mbcs.
Je ne suis d'ailleurs pas le seul à le savoir.
>>> import sys
>>> sys.getfilesystemencoding()
mbcs