Bonjour,
Je suis sur une Red Hat Enterprise Linux ES release 4.
Voici la problématique : je reçois des fichiers qui ont des jeux de caractères divers, et je dois les mettre en utf8 afin de les traiter correctement.
Actuellement j'utilise un petit shell du genre :
Et j'ai un problème avec un fichier que je viens de recevoir, pour lequel j'ai un retour de la commande file à unknown :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 dos2unix $1 charset=`file -i $1| cut -d "=" -f 2` echo "charset original:$charset" if [ "$charset" == "iso-8859-1" ] then echo "conversion UTF8" cp $1 $1.original cp $1 $1.tmp iconv -f $charset -t UTF8 $1.tmp > $1 retour=$? if [ "$retour" != "0" ] then echo "echec de la conversion" mv $1.original $1 else echo "conversion OK" rm -f $1.original fi else echo "Aucune conversion necessaire" fi #nettoyage rm -f $1.tmp exit $retour
Lorsque j'ouvre ce fichier avec textpad, il m'annonce un codepage ANSI.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [nicolas tmp]$ file -i fichier_pb fichier_pb: text/plain; charset=unknown
D'où mes questions :
1°) Pourquoi le file -i n'est-il pas capable de déterminer ce codepage ?
2°) Est-ce que la solution que j'ai mise en place est pertinente ?
3°) Comment faire ?
Merci par avance pour votre aide.
Nicolas
Partager