web-dev-qa-db-fra.com

Comment renommer les noms de fichiers en différents encodages?

J'ai 3 types de codages file name sur le disque dur monté reiserfs: CP1251, KOI-8, UTF-8 et ASCII. J'ai vraiment besoin de convertir tous les encodages en UTF-8, de manière récursive. Existe-t-il un utilitaire permettant de détecter le codage source et de le convertir en UTF-8 ou de devoir écrire Python script?

8
Pablo

Utilisez convmv, un outil CLI qui convertit le nom de fichier en différents encodages. Pour convertir (-f) ces liaisons en (-t) UTF-8, procédez comme suit:

convmv -f CP1251 -t UTF-8 inputfile
convmv -f KOI-8  -t UTF-8 inputfile
convmv -f ASCII  -t UTF-8 inputfile

De plus, si vous souhaitez convertir le contenu du fichier, utilisez iconv, un outil CLI permettant de convertir le contenu du fichier en différents encodages. Pour convertir (-f) ces liaisons en (-t) UTF-8, procédez comme suit:

iconv -f CP1251 -t UTF-8 inputfile > outputfile
iconv -f KOI-8  -t UTF-8 inputfile > outputfile
iconv -f ASCII  -t UTF-8 inputfile > outputfile
10

Nan. L’un des gros inconvénients de l’ancien système de pages de codes est qu’il n’ya aucun moyen de détecter celle qui est utilisée; vous devez simplement le savoir a priori. Si vous savez quels fichiers utilisent quel encodage, vous pouvez convertir les noms en utilisant quelque chose comme:

mv somefile `echo somefile | iconv -f CP1251 -t UTF-8`
1
psusi