Iconv

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Conversion d'encodage de caractères
Commande iconv
Contexte Fichiers texte en Latin-1/Windows-1252 (legacy) à migrer vers UTF-8
Voir aussi Grep (filtrer la liste des encodages)

iconv convertit un fichier texte d'un encodage de caractères vers un autre. Le cas le plus fréquent : un fichier produit sous Windows ou par une vieille application (Latin-1/ISO-8859-1 ou Windows-1252, typiquement en France) à remettre en UTF-8 pour qu'il s'affiche correctement partout.

Lister les encodages disponibles

iconv -l                 # tous les encodages supportés
iconv -l | grep -i utf    # variantes UTF (UTF-8, UTF-16...)
iconv -l | grep -i iso    # variantes ISO-8859-*

Détecter l'encodage d'un fichier

Avant de convertir, il faut savoir dans quel encodage le fichier est actuellement :

file -i fichier.txt       # devine l'encodage à partir du contenu

⚠️ La détection automatique reste une heuristique (surtout sur des fichiers courts ou sans caractères accentués) : à vérifier manuellement en cas de doute, notamment entre ISO-8859-1 et Windows-1252 qui se ressemblent beaucoup.

Convertir un fichier

iconv -f ISO-8859-1 -t UTF-8 fichier.txt -o fichier-utf8.txt
iconv -f WINDOWS-1252 -t UTF-8 fichier.txt -o fichier-utf8.txt

-f (from) précise l'encodage source, -t (to) l'encodage cible, et -o écrit le résultat dans un nouveau fichier plutôt que sur la sortie standard.

Repère courant : en France, les vieux fichiers texte sont le plus souvent en Latin-1/CP1252, alors que les échanges internationaux se font désormais en UTF-8.

Convertir tous les fichiers d'un répertoire

mkdir -p utf8
for f in *.txt; do
  iconv -f ISO-8859-1 -t UTF-8 "$f" -o "utf8/$f"
done

Voir aussi

  • Grep — filtrer la sortie de iconv -l