Utilisation de l’outil iconv pour convertir des fichiers de l’encodage ISO-8859-15 vers UTF-8, ainsi qu’un script Bash pour traiter tout un répertoire de manière automatisée.
Conversion d’un seul fichier
Pour convertir un fichier de l’encodage ISO-8859-15 vers UTF-8 :
iconv -f iso-8859-15 -t utf-8 fichier-ISO.txt > fichier-utf8.txt
Dans le sens inverse, pour repasser un fichier de l’UTF-8 vers ISO-8859-15 :
iconv -f utf-8 -t iso-8859-15 fichier-utf8.txt > fichier-ISO.txt
-f(from) spécifie l’encodage source.-t(to) spécifie l’encodage de destination.
Batch conversion (script Bash)
Voici un script pour convertir en lot tous les fichiers d’un répertoire ayant une extension spécifique (ex: .txt, .php) de l’ISO-8859-15 vers l’UTF-8.
#!/bin/sh
usage() {
echo "Usage : $0 <repertoire> <extension>"
echo ""
echo "Convertit en UTF-8 tous les fichiers ISO-8859-15"
echo "du répertoire spécifié possédant l'extension demandée."
exit -1
}
# Vérification des arguments
[ $# -ne 2 ] && usage
[ ! -d "$1" ] && echo "Le répertoire '$1' n'existe pas !" && exit -1
rep="$1"
ext="$2"
find "$rep" -type f -name "*.$ext" | while read -r i; do
echo -n "Conversion de $i ... "
TMP=$(mktemp)
# Conversion sécurisée vers le fichier temporaire
if iconv -f iso-8859-15 -t utf-8 "$i" -o "$TMP" 2>/dev/null; then
mv "$TMP" "$i"
echo "OK"
else
rm -f "$TMP"
echo "ERREUR"
fi
done
Catégories : Linux