[Toulibre] Migration UTF8

Eric Noulard eric.noulard at gmail.com
Mar 14 Juil 20:26:15 CEST 2009


Le 14 juillet 2009 19:42, <philsfree at free.fr> a écrit :
> Bonjour,
>
> Certains des utilisateurs de mon réseau local ont créé des fichiers avec tout le jeu de caractères possibles et imaginables (é,&, ...) ... avant le passage en UTF-8.
> J'aimerais donc trouver une aide à la migration des ces fichiers.
>
> Pour le moment, j'ai essayé utf8migrationtool sous Ubuntu Hardy.
> Le problème est que cet utilitaire râle et refuse de lancer tout traitement/diagnostic :
> Locale 'fr_FR.UTF-8 at euro' does not exist in /usr/share/i18n/SUPPORTED.
>
> Je ne sais pas où il trouve fr_FR.UTF-8 at euro car dans le même environnement la commande 'locale' donne :

Chez moi (Debian Lenny)  utf8migrationtool est un script python,
après lecture rapide du script je dirais qu'il cherche le locale
avec le module 'locale' de python puis fait diverse
chose avec le fichier  ~/.dmrc

> La commande 'env' ne retourne non plus aucune variable contenant 'euro'.
> Je sèche un peu.

J'ai lu très vite mais le script python donc ça mériterait une lecture
plus attentive
(également le contenu de /usr/share/utf8-migration-tool/*/*.py)

Sinon personnellement pour changer l'encodage d'un (ou plusieurs) fichiers
j'utilise recode. (sudo aptitude install recode , devrait faire l'affaire)

Je pense (à vérifier) que la commande file doit pouvoir te dire
si le fichier est UTF-8, ASCII ou ISO-8859-1
par exemple mes LC_xxx sont fr_FR.UTF-8
donc j'ai un système "UTF-8".
Disons que j'ai un vieux fichier "tt.txt" en ISO-8859

eric at baloo:~$ file tt.txt
tt.txt: ISO-8859 text
eric at baloo:~$ cat tt.txt
hdj;hs
& � � **
eric at baloo:~$ recode ISO-8859-1..UTF-8 tt.txt
eric at baloo:~$ file tt.txt
tt.txt: UTF-8 Unicode text
eric at baloo:~$ cat tt.txt
hdj;hs
& é à **
eric at baloo:~$

Donc tu dois pouvoir chercher les fichiers [textes]
 qui ne sont pas encodés en UTF-8 avec un

find ~/. -exec  file {}  | grep ISO

puis faire un essai de recode avec 1 ou 2 fichiers
avant de scripter tout ça re-encoder les fichiers qui doivent l'être :-)
Il est sage de faire une copie des fichiers AVANT recodage :-)

Un dernier truc ISO-8859-1 est un exemple.
recode connait une foultitude d'encodage dont certains sont synonymes.
Par exemple:
ISO-8859-1 == latin1 == Latin-1 == ISO8859-1 ...


-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org



Plus d'informations sur la liste de diffusion Toulouse-ll