Jeśli mamy jakieś stare pliki tekstowe zapisane w „windowsowym” edytorze to może się okazać, że są to pliki zapisane jeszcze w starym systemie kodowania znaków. Aktualnie standardem kodowania znaków jest UTF-8, jednak może się zdarzyć, że twoje stare pliki zostały zapisane w formacie CP1250 lub ISO 8859-2 ( ISO Latin 2 ). Tak więc otwarcie takiego pliku na współczesnych systemach operacyjnych z rodziny OSX / Linux / Unix spowoduje iż na ekranie zobaczymy sporo tzw. krzaczków – gdyż domyślnie taki plik będzie odczytany w standardzie UTF-8.
Na szczęście rozwiązanie jest dość proste. Użytkownicy OS X a także systemów z rodziny Linux / Unix mają już najczęściej w systemie dołączony program konsolowy do konwersji znaków. Tym programem jest: iconv
Wystarczy uruchomić konsolę ( terminal ) i uruchomić program z odpowiednimi parametrami.
Konwersja z CP1250 na UTF-8
cat nazwa_pliku.txt | iconv -f cp1250 -t utf-8 | tee nazwa_pliku.txt
Połączenie 3 powyższych programików spowoduje przekonwertowanie znaków z cp1250 na utf-8 i nadpisanie pliku.
Jeśli chcemy mieć kopie oryginału:
cat nazwa_pliku.txt | iconv -f cp1250 -t utf-8 > kopia_pliku.txt
Hurtowa konwersja wielu plików
Operacja ogranicza się do wykorzystania pętli for in interpretera Bash i wpisaniu wspomnianych wcześniej listy poleceń dotyczących konwersji wraz z nadpisaniem oryginalnych plików.
Wchodzimy do katalogu, gdzie znajdują się pliki i wpisujemy poniższy kod ( W JEDNEJ LINII ! ):
for FILENAME in ./*; do cat $FILENAME | iconv -f cp1250 -t utf-8 | tee $FILENAME; done;
W ten sposób mamy przetworzone hurtowo wszystkie pliki z katalogu w którym wpisaliśmy powyższy kod.