web-dev-qa-db-fra.com

Comment convertir des fichiers en encodage UTF-8 avec une commande en ligne de commande * nix?

doublon possible:
Convertir par lots des fichiers pour le codage ou la fin de ligne

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

Existe-t-il des outils en ligne de commande ou Perl (ou la langue de votre choix) des liners que je peux utiliser pour le faire en masse?

45
jason

iconv convertit entre plusieurs encodages de caractères. Donc, en ajoutant un peu de magie bash et nous pouvons écrire

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

Ceci exécutera iconv -f ascii -t utf-8 sur chaque fichier se terminant par .txt, en envoyant le fichier recodé dans un fichier portant le même nom mais se terminant par .utf8.txt au lieu de .txt.

Ce n'est pas comme si cela ferait quoi que ce soit à vos fichiers (parce que ASCII est un sous-ensemble de UTF-8), mais pour répondre à votre question sur la conversion d'un encodage.

55
Vinko Vrsalovic