2009-08-01 00:29:36 +0000 2009-08-01 00:29:36 +0000
46
46

Comment puis-je convertir plusieurs fichiers au codage UTF-8 en utilisant les outils de ligne de commande *nix ?

Doublon possible: Fichiers de conversion par lots 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.

Y a-t-il des outils en ligne de commande ou des lignes Perl (ou la langue de votre choix) que je peux utiliser pour faire cela en masse ?

Réponses (1)

56
56
56
2009-08-01 01:25:17 +0000

iconv fait la conversion entre plusieurs codages de caractères. Donc, en ajoutant un peu de magie et nous pouvons écrire

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

Cela fera tourner iconv -f ascii -t utf-8 à chaque fichier se terminant par .txt, envoyant le fichier recodé à un fichier avec le même nom mais se terminant par .utf8.txt au lieu de .txt.

Ce n'est pas comme si cela faisait réellement quelque chose à 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.