# [SCRIPT] nom de fichier à codage non valide (résolu)

## pti-rem

Bonjour,

J'utilise Gnome et Nautilus ; Nautilus précise (codage non valide) pour certains de mes fichiers et je sais qu'il me suffit de les renommer un par un pour que je n'ai pas de problème avec si le problème de codage ne concerne que le nom de fichier et pas son contenu.

Je voudrais avoir une idée de comment repérer (chemin+nom) ces fichiers dont le nom est mal codé ... avec un find par exemple ?

Il aurait été trop simple de chercher "(codage non valide)" car même Nautilus ne sait pas trouver ce qu'il m'affiche  :Wink: 

Merci aux bons amateurs de scripts car avec l'empreinte laissée sur moi par COMMAND.COM, je suis un peu nul du Bash ...Last edited by pti-rem on Sat Nov 12, 2011 9:52 am; edited 1 time in total

----------

## fb99

en principe ça doit être des fichier que tu as crée. Donc, en appliquant avec un petit boucle (for) l'utilitaire convmv ($man convmv && http://www.gentoo.org/doc/fr/utf-8.xml#doc_chap3_pre3), tu devrais t'en sortir.

 *$man convmv wrote:*   

> convmv is able to detect if certain files are UTF-8 encoded and will skip them by default

 

Il n'est jamais trop tard pour apprendre. regarde sur un moteur de recherche "bash boucle for" + $man convmv, après tu nous poste ton essais de script ici ou tu le test déjà sur un petit répertoire (sans l'option --notest)

donc ton script doit comprendre un "for" et un truc du style "$convmv -f iso-8859-1 -t utf-8 -r $HOME "

bon courage, si tu bloque plus de 30 min revient et on te donnera la solution.

----------

## pti-rem

Bon, j'ai cherché d'après tes infos.

Je n'ai pas eu à utiliser de boucle FOR car convmv est récursif avec -r

J'ai utilisé la commande suivante sur un répertoire de test :

```
rem@jardin ~/Desktop/convmv $ convmv -f iso-8859-1 -t utf-8 -r .
```

Je préfère donner une copie d'écran du résultat qui me dit que tous les fichiers sont déja en UTF-8 ... Même ceux que Nautilus indique en codage non valide.

http://chezpoint.free.fr/gentoo/Desktop-convmv.png

J'ai aussi un problème de réunion de sauvegardes qui comporte le même répertoire/fichier bien codé ainsi qu'au moins un qui l'est - indiqué - mal.

Merci pour ton aideLast edited by pti-rem on Thu Nov 10, 2011 4:39 pm; edited 1 time in total

----------

## pti-rem

J'ai passé tout mon répertoire Audio avec la commande précédente en dry-run et il (convmv) ne sait me dire que des "Skpiping, Already UTF-8" pour un ensemble de fichiers comprenant des bons ainsi que des mauvais - au sens de ma recherche ; remarque, à chaque chose, malheur a du bon car j'ai ainsi une liste de fichier presque bien formée que je pourrai renommer à la main si besoin.

http://chezpoint.free.fr/gentoo/convmv-audio-souk.png

Somme toute, j'aimerai bien comprendre ...

----------

## sebB

Tu utilises quelle version de convmv?

Si tu es en stable essaye en demasquant la 1.14, ca résoud le probleme chez certains.

EDIT: Il est sympa le répertoire Pauline dans ton 2nd screen

----------

## fb99

ah oui que je suis beuf, même pas besoin de script, pff... 

1ère chose apprendre ceci:

 *http://monidentite.net/index.php/Encodage#Reconnaissance_rapide_des_probl.C3.A8mes_d.27affichage_UTF-8_.2F_ISO wrote:*   

> Voici une chaine de caractère accentuée, qui peut poser problème : 
> 
> é - è - ê - à - â - î - ï 
> 
> Si la page affiche des caractères de ce type : 
> ...

 

Après il peut y avoir à la place des carré des point d'interrogation noir, c'est idem.

Ensuite, il peut arriver que le problème soit que l'on convertit deux fois en UTF-8. donc l'option --fixdouble

 *$ man convmv wrote:*   

>  --fixdouble
> 
>            using the "--fixdouble" option convmv does only convert files which
> 
>            will still be UTF-8 encoded after conversion. That's useful for
> ...

 

man est ton ami, don't forget it, continu reading it. (il existe aussi en français, j'ai la flemme de le chercher, j'ai mon système en anglais, c'est une manière de s'améliorer).

Et de plus il peut arrivé que ton terminal ne soit pas compatible utf-8 donc affiche en iso de l'utf8. voilà. 

bon courage.

----------

## Grat

J'ai eu un problème similaire avec des windowseries, je n'ai pas testé les versions ~arch de convmv mais la 1.10 n'est pas vraiment "smart", donc ajouter l'option --nosmart pour forcer la conversion, toujours en dry-run au cas où...

D'autre part les windowseries en question ne se convertissaient pas bien depuis iso-8859-1, ça a marché avec cp850.

Bien lire le dry-run avant d'ajouter notest, la conversion forcée pourrait provoquer quelques surprises.

Mieux, copier les fichiers concernés dans un rep dédié.

----------

## pti-rem

J'utilisais la version 1.10 ; j'ai emergé la 1.14 pour me renseigner sur l'option --fixdouble qui ne figure pas dans la 1.10

J'ai réussi des tests en renommant avec codage de cp850 à utf-8

Merci beaucoup.

Autrement, j'ai aussi des noms de fichiers qui ne sont pas signalés à codage non valide, mais qui contiennent des pavés clairs avec des petits numéros ou des petites lettres au lieu de caractères accentués que j'aimerai bien pouvoir retrouver.

----------

