Convertir des fichiers en UTF-8 sous linux

Posté le 30-10-2009

Lors d’une migration d’application vers le format UTF-8 (je rappel qu’il est mieux de commencer directement en UTF-8), il est parfois nécessaire de convertir des fichiers au format UTF-8. Pour cela, sous linux, il existe la commande iconv. Voici un exemple d’utilisation de cette fonction pour convertir un fichier initialement en ISO-8859-1 vers UTF-8 :

iconv -f ISO-8859-1 -t UTF-8 nom_du_fichier_source -o fichier_encode

On peut également mettre en place un traitement plus générique sur tous les fichiers d’une arborescence. Voici un script SH qui permet de traiter plusieurs fichiers dont l’extension est spécifiée (à enregistrer dans un fichier utf8encode.sh par exemple) :

# encodage de depart
encodeFrom='ISO-8859-1'
# encodage voulu
encodeTo='UTF-8'
# application du script sur les fichiers *.php
for filename in ` find . -type f -name *.php`
do    
    # sauvegarde du fichier source
    mv $filename $filename.save
    # ecriture du fichier encode
    iconv -f $encodeFrom -t $encodeTo $filename.save -o $filename
done
comments powered by Disqus