Pisałem już o tym Jak sprawdzić kodowanie pliku tekstowego, dziś będzie o tym jak zmienić kodowanie pliku tekstowego. W przypadku środowiska graficznego wystarczy otworzyć plik w dobrym edytorze tekstu i podczas zapisywania wybrać interesujące nas kodowanie. Jeśli jednak chcemy zmienić kodowanie znaków z wiersza poleceń, aby np. wykorzystać to w skrypcie powłoki, możemy posłużyć się jednym z poniższych programów.
Linux:
iconv -f UTF-8 -t CP1250 foobar_utf8.txt > foobar_cp1250.txt
Program iconv
przekonwertuje nam plik foobar_utf8.txt
zapisany w kodowaniu UTF-8 na CP1250 i zapisze dane w pliku foobar_cp1250.txt
. Kodowanie znaków pliku wejściowego możemy zdobyć np. dzięki programowi enca
z parametrem -i
, który zwróci nam kodowanie w odpowiednim formacie.
przykład:
rad@linux:~$ enca -i foo.txt # sprawdza kodowanie UTF-8 rad@linux:~$ iconv -f UTF-8 -t ISO-8859-2 foo.txt > bar.txt rad@linux:~$ enca -i bar.txt ISO-8859-2
Jeśli dokonujemy zmiany kodowania na format w którym niektóre znaki nie będą mogły zostać zapisane, program zwróci nam błąd. Należy dodać wtedy parametr -c
który sprawi, że program będzie pomijał kłopotliwe znaki.
przykład:
rad@linux:~$ iconv -f ISO-8859-2 -t ASCII bar.txt > baz.txt iconv: illegal input sequence at position 30 rad@linux:~$ iconv -c -f ISO-8859-2 -t ASCII bar.txt > baz.txt rad@linux:~$ enca -i baz.txt ASCII
Jeśli z jakichś powodów program ten nam nie odpowiada zawsze możemy skorzystać z innego np. recode
czy enca
(z odpowiednimi parametrami). A jeśli chcemy zmienić kodowanie nazwy pliku/plików wcale nie musimy pisać specjalnego skryptu z użyciem powyższych narzędzi, wystarczy convmv
😉
Dzięki, pomogło mi. Pozdrawiam o/