Commandes Linux : iconv

ICONV

Installé avec le paquet libc-bin
Voir aussi : recode, konwert et tr

 

Afficher la version de la commande iconv

iconv --version

ou

apt-cache policy libc-bin

 

Textes utilisés pour les tests

file1.txt
Ses nombreuses pattes, lamentablement grêles par comparaison avec la corpulence qu’il avait par ailleurs, grouillaient désespérément sous ses yeux. « Qu’est-ce qui m’est arrivé ? » pensa-t-il. Ce n’était pas un rêve.

Sa chambre, une vraie chambre humaine, juste un peu trop petite, était là tranquille entre les quatre murs qu’il connaissait bien.
file2.txt
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Aenean commodo ligula eget dolor.

 

Mode verbeux

iconv --verbose [...]

Affichera une information de progression.

 

Afficher la liste des encodages pris en charge

iconv -l

 

Convertir un texte d’un encodage vers un autre

Vers la sortie standard
iconv -f fromcoding -t tocoding inputfilename

Equivaut à :
recode fromcoding..tocoding < inputfilename
konwert fromcoding-tocoding < inputfilename

Vers un fichier de sortie
iconv -f fromcoding -t tocoding inputfilename -o outputfilename

Equivaut à :
recode fromcoding..tocoding < inputfilename > outputfilename
konwert fromcoding-tocoding < inputfilename > outputfilename
ex :

# file file1.txt
file1.txt: UTF-8 Unicode text
# iconv -f UTF-8 -t ISO-8859-15 file1.txt -o Latin9-file1.txt
# cat Latin9-file1.txt
Ses nombreuses pattes, lamentablement gr�les par comparaison avec la corpulence qu'il avait par ailleurs, grouillaient d�sesp�r�ment sous ses yeux. � Qu'est-ce qui m'est arriv� ? � pensa-t-il. Ce n'�tait pas un r�ve.

Sa chambre, une vraie chambre humaine, juste un peu trop petite, �tait l� tranquille entre les quatre murs qu'il connaissait bien.
# file Latin9-file1.txt
Latin9-file1.txt: ISO-8859 text

 

Supprimer les caractères accentués (conversion en ASCII)

La substitution
sed 'y/áàâäçéèêëîïìôöóùúüñÂÀÄÇÉÈÊËÎÏÔÖÙÜÑ«»/aaaaceeeeiiiooouuunAAACEEEEIIOOUUN""/' inputfilename > outputfilename

ex :

# file file1.txt
file1.txt: UTF-8 Unicode text
# sed 'y/áàâäçéèêëîïìôöóùúüñÂÀÄÇÉÈÊËÎÏÔÖÙÜÑ«»/aaaaceeeeiiiooouuunAAACEEEEIIOOUUN""/' file1.txt > ascii-file1.txt
# cat ascii-file1.txt
Ses nombreuses pattes, lamentablement greles par comparaison avec la corpulence qu'il avait par ailleurs, grouillaient desesperement sous ses yeux. " Qu'est-ce qui m'est arrive ? " pensa-t-il. Ce n'etait pas un reve.

Sa chambre, une vraie chambre humaine, juste un peu trop petite, etait la tranquille entre les quatre murs qu'il connaissait bien.
# file ascii-file1.txt
ascii-file1.txt: ASCII text
La conversion
iconv -f fromcoding -t ascii inputfilename -o outputfilename

ex :

# file file1.txt
file1.txt: UTF-8 Unicode text
# iconv -f UTF-8 -t ascii file1.txt -o ascii-file1.txt
iconv: séquence d'échappement non permise à la position 40

Certains caractères ne peuvent pas être convertis (ici le “ê” de “grêle”, mais potentiellement d’autres). Pour corriger le problème, ajouter l’une des options suivantes :

Conversion : option -c

Permet de supprimer les caractères invalides de la sortie.

iconv -c -f fromcoding -t ascii inputfilename -o outputfilename

ex :

# file file1.txt
file1.txt: UTF-8 Unicode text
# iconv -c -f UTF-8 -t ascii file1.txt -o ascii-file1.txt
# cat ascii-file1.txt
Ses nombreuses pattes, lamentablement grles par comparaison avec la corpulence qu'il avait par ailleurs, grouillaient dsesprment sous ses yeux.  Qu'est-ce qui m'est arriv ?  pensa-t-il. Ce n'tait pas un rve.

Sa chambre, une vraie chambre humaine, juste un peu trop petite, tait l tranquille entre les quatre murs qu'il connaissait bien.
# file ascii-file1.txt
ascii-file1.txt: ASCII text

Tous les caractères accentués ainsi que les guillemets français ont été supprimés en sortie.

Conversion : option //TRANSLIT (translitération)
iconv -f fromcoding -t ascii//TRANSLIT inputfilename -o outputfilename

Permet d’approximer les caractères qui posent problème par des caractères de formes similaires.
ex :

# file file1.txt
file1.txt: UTF-8 Unicode text
# iconv -f UTF-8 -t ascii//TRANSLIT file1.txt -o ascii-file1.txt
# cat ascii-file1.txt
Ses nombreuses pattes, lamentablement greles par comparaison avec la corpulence qu'il avait par ailleurs, grouillaient desesperement sous ses yeux. << Qu'est-ce qui m'est arrive ? >> pensa-t-il. Ce n'etait pas un reve.

Sa chambre, une vraie chambre humaine, juste un peu trop petite, etait la tranquille entre les quatre murs qu'il connaissait bien.
# file ascii-file1.txt
ascii-file1.txt: ASCII text

Tous les caractères accentués ont été remplacés par leurs équivalents ascii non accentués et les guillemets français par des doubles chevrons.

Fermer le menu
%d blogueurs aiment cette page :