it-swarm.asia

Bagaimana saya bisa mengonversi banyak file ke pengkodean UTF-8 menggunakan alat baris perintah * nix?

Kemungkinan Gandakan:
Batch-convert file untuk penyandian atau akhir baris

Saya memiliki banyak file teks yang ingin saya konversi dari charset yang diberikan ke pengkodean UTF-8.

Apakah ada alat baris perintah atau Perl (atau bahasa pilihan Anda) satu baris yang bisa saya gunakan untuk melakukan ini secara massal?

45
jason

iconv memang mengkonversi antara banyak pengkodean karakter. Jadi tambahkan sedikit bash magic dan kita bisa menulis

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

Ini akan menjalankan iconv -f ascii -t utf-8 untuk setiap file yang berakhiran .txt, mengirimkan file yang sudah dikodekan ulang ke file dengan nama yang sama tetapi berakhir dengan .utf8.txt alih-alih .txt.

Ini bukan seolah-olah ini akan benar-benar melakukan apa saja pada file Anda (karena ASCII adalah bagian dari UTF-8), tetapi untuk menjawab pertanyaan Anda tentang cara mengkonversi antar pengkodean.

55
Vinko Vrsalovic