Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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