Convertir des fichiers en UTF-8 sous linux

Publié le 30 octobre 2009 par Apen

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 :

view source print? 1.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) :

view source print? 01.# encodage de depart 02.encodeFrom='ISO-8859-1' 03. 04.# encodage voulu 05.encodeTo='UTF-8' 06. 07.# application du script sur les fichiers *.php 08.for filename in ` find . -type f -name *.php` 09. 10.do 11.  # sauvegarde du fichier source 12.  mv $filename $filename.save 13. 14.  # ecriture du fichier encode 15.  iconv -f $encodeFrom -t $encodeTo $filename.save -o $filename 16.done