49 votes

Comment convertir plusieurs fichiers en encodage UTF-8 à l'aide d'outils de ligne de commande *nix ?

Duplicata possible :
Conversion par lots de fichiers pour l'encodage ou la fin de ligne

J'ai un tas de fichiers texte que j'aimerais convertir d'un jeu de caractères donné à l'encodage UTF-8.

Existe-t-il des outils en ligne de commande ou des programmes Perl (ou le langage de votre choix) que je puisse utiliser pour faire cela en masse ?

57voto

JoshL Points 290

Iconv effectue des conversions entre de nombreux codages de caractères. En ajoutant un peu de magie bash, nous pouvons donc écrire

for file in *.txt; do
    iconv -f ascii -t utf-8 "$file" -o "${file%.txt}.utf8.txt"
done

Il s'agit d'exécuter iconv -f ascii -t utf-8 à chaque fichier se terminant par .txt et envoie le fichier recodé à un fichier portant le même nom mais se terminant par .utf8.txt au lieu de .txt .

Ce n'est pas comme si cela allait réellement affecter vos fichiers (parce que l'ASCII est un sous-ensemble de l'UTF-8), mais pour répondre à votre question sur la manière de convertir entre les encodages, il faut savoir que l'ASCII est un sous-ensemble de l'UTF-8 et qu'il n'est pas nécessaire de le faire.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X