OVH Cloud OVH Cloud

Conversion de iso-8859 en utf-8

15 réponses
Avatar
Olivier V
Bonjour,

Quelqu'un a-t-il une solution "valable" pour convertir les données d'un
répertoire entier de l'iso-8859 vers de l'utf-8 ?

Je précise que dans ce(s) répertoire(s) certains fichiers ont besoin d'être
convertis (.txt, .tex, ...) mais d'autres non (.pdf, .jpg, ...).

Sur le net j'ai trouvé :

1) http://brunetton.tuxfamily.org/index.php?n=Main.ScriptUTF8toISO-8859-15
(à modifier pour faire le contraire, bien sûr)
Mais ça ne descend pas récursivement dans les répertoires et n'accepte pas
les espaces dans les noms.

2) http://sebdeblinux.free.fr/
Mais il faut que les répertoires ne contiennent que les fichiers à convertir
(pas d'images, etc ...) et n'accepte pas les espaces dans les noms.

Avez-vous mieux ?

Olivier V

5 réponses

1 2
Avatar
limax

Si nécessaire, utrac doit pouvoir aider.


où le trouve t on? Je n'ai pas pu le trouver.
Tu en as une version par hasard?
désolé j'ai mal cherché


mais j'ai toujours la même réponse

limax test $ utrac -i vimrc59
Filename: vimrc59
Charset (unsure): ISO-8859-1
EOL: LF (143 lines)
Size: 4147
limax test $ utrac -i vimrc
Filename: vimrc
Charset (sure): UTF-8
EOL: LF (143 lines)
Size: 4152


Avatar
limax

Si nécessaire, utrac doit pouvoir aider.


où le trouve t on? Je n'ai pas pu le trouver.
Tu en as une version par hasard?


je vais vraiment trop vite :http://utrac.sourceforge.net/index.html


Avatar
Olivier V

mais j'ai toujours la même réponse



Effectivement ce n'est pas mieux

Il voit du iso-8859-14 (au lieu de 15)
et le fichier converti contient bien sûr un tas de caractères "carrés" ?.

[ essai]$ utrac -i aa_doc_mod.tex
Filename: aa_doc_mod.tex
Charset (unsure): ISO-8859-14
EOL: CRLF (488 lines)
Size: 26251
[ essai]$ iconv -f iso-8859-14 -t utf-8 aa_doc_mod.tex >
aa_doc_mod.tex_utf8.tex

Cependant, je n'ai qu'un nombre très limité de fichiers en iso-8859-1 (que
je peux retrouver par la date de modification) et je peux donc me servir de
votre script en remplaçant iso-8859-1 par iso-8859-15.

C'est déjà très bien,
bien qu'il subsiste un problème de fond pour arriver à trouver l'encodage.

Mais comme moi (et vu vos connaissances en bash !) , vous n'aimez sans doute
pas que quelque chose vous résiste.

Olivier V

Avatar
Olivier V
Au fait, ne faudrait-il pas aussi convertir les noms des fichiers et des
répertoires eux-mêmes ?

J'ai par exemple trouvé chez http://sebdeblinux.free.fr/ le morceau de code
suivant qui doit pouvoir de réutiliser :

convert_names()
{
echo "Conversion des NOMS de fichiers et repertoires"
#convmv -r -f $FROM -t $TO --qfrom --qto --notest $1
convmv -r -f $FROM -t $TO --notest $1
echo ""
}

Olivier V
Avatar
Olivier V

Au fait, ne faudrait-il pas aussi convertir les noms des fichiers et des
répertoires eux-mêmes ?

J'ai par exemple trouvé chez http://sebdeblinux.free.fr/ le morceau de
code suivant qui doit pouvoir de réutiliser :

convert_names()
{
echo "Conversion des NOMS de fichiers et repertoires"
#convmv -r -f $FROM -t $TO --qfrom --qto --notest $1
convmv -r -f $FROM -t $TO --notest $1
echo ""
}

Olivier V


Plus d'idées limax ?

En tout cas merci.
Avec votre script, je dois pouvoir convertir le contenu,
et avec l'autre les noms.

Olivier V

1 2