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

Come posso convertire più file nella codifica UTF-8 usando strumenti a riga di comando *nix?

Possibile duplicato: Convertire in batch i file per la codifica o la terminazione delle linee

Ho un mucchio di file di testo che vorrei convertire da qualsiasi charset alla codifica UTF-8.

Ci sono strumenti a riga di comando o one liners Perl (o un linguaggio a vostra scelta) che posso usare per fare questo in massa?

Risposte (1)

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

iconv converte tra molte codifiche di caratteri. Quindi aggiungendo un po’ di magia bash possiamo scrivere

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

Questo eseguirà iconv -f ascii -t utf-8 ad ogni file che termina in .txt, inviando il file ricodificato ad un file con lo stesso nome ma che termina in .utf8.txt invece di .txt.

Non è che questo faccia effettivamente qualcosa ai tuoi file (perché ASCII è un sottoinsieme di UTF-8), ma per rispondere alla tua domanda su come convertire tra codifiche.