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

Jak mogę przekonwertować wiele plików na kodowanie UTF-8 używając narzędzi wiersza poleceń *nix?

Prawdopodobny Duplikat: Konwersja wsadowa plików w celu kodowania lub zakończenia linii

Mam kilka plików tekstowych, które chciałbym przekonwertować z dowolnego zestawu znaków do kodowania UTF-8.

Czy istnieją jakieś narzędzia wiersza poleceń lub Perl (lub język do wyboru), których mogę użyć, aby zrobić to masowo?

Odpowiedzi (1)

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

iconv konwertuje pomiędzy wieloma kodowaniami znaków. Dodając więc trochę magii basha, możemy napisać

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

To uruchomi iconv -f ascii -t utf-8 do każdego pliku kończącego się na .txt, wysyłając przekodowany plik do pliku o tej samej nazwie, ale kończącego się na .utf8.txt zamiast .txt.

To nie jest tak, że to faktycznie zrobiłoby coś z twoimi plikami (ponieważ ASCII jest podzbiorem UTF-8), ale aby odpowiedzieć na twoje pytanie o to, jak konwertować między kodowaniami.