Iconv
| 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