Convertir un fichier en UTF8
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 :
Code:
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 |
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:
1 2
| [nicolas tmp]$ file -i fichier_pb
fichier_pb: text/plain; charset=unknown |
Lorsque j'ouvre ce fichier avec textpad, il m'annonce un codepage ANSI.
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