Программа iconv запускается следующим образом:
[user]$ iconv -f866 -tKOI8-R -o ‹outfile› infile
Если не указать выходной файл (опция -o), то результат будет выдаваться на экран (используя фильтры more или less можно удобно просмотреть файл). Чтобы получить список всех возможных кодировок (а он огромен!), дайте команду iconv -list, а для получения помощи: iconv -? или iconv -usage. Между прочим, man-страница не выдается. Впрочем, других опций все равно очень немного: только -verbose (сообщать дополнительные сведения), -V, и -version (обе опции служат для вывода версии программы).
Программу recode можно найти на http://www.iro.umontreal.ca/~pinard/recode/.
Запускается она примерно так:
[user]$ recode CP1251..KOI8-R winfile.txt
Кроме упомянутых команд вы можете воспользоваться программой ‘Russian Anywhere’, которая существует как в версии для Windows (где я с ней и познакомился), так и в версии для командной строки Linux (создатели обещают выпустить и графическую оболочку). Эту программу можно скачать (как в исходных кодах, так и в виде исполняемого модуля) с сайта разработчика http://www.livotov.org/software/.
Исполняемый модуль программы имеет название re. Его лучше поместить в один из каталогов, указанных в переменной PATH.
Программа вызывается из командной строки. Для того, чтобы перекодировать какой-то файл, который ‘не читается’, в кодировку KOI8-R, надо дать команду:
[user]$ re ‹SourceFile› ‹DestFile›? K
где:
• ‹SourceFile› – исходный (нечитаемый) файл;
• ‹DestFile› – перекодированный файл;
• ? – сообщает RE, что кодировка исходного файла не известна и re должна проанализировать файл и самостоятельно определить его кодировку;
• K – задает кодировку для результирующего файла (в данном случае KOI-8).
Если вы знаете кодировку исходного файла, вы можете указать ее вместо символа ‘?’. Например, если вы хотите перекодировать файл letter.txt, который был создан в Windows, и вы знаете, что файл сохранен в кодировке 1251, то надо дать команду:
[user]$ re letter.txt letter-koi.txt W K
После этого, просмотрев файл letter-koi.txt, вы увидите вполне читаемый русский текст в KOI8-R.
Полный формат вызова перекодировщика:
[user]$ re options filename_from filename_to cp_from cp_to [s/d/f] [u/l/s]
где options: [-v][-E|-R|-N][-e|-s]
• -v – выдавать информацию о ходе обработки;
• -n – не выдавать информацию о ходе обработки (задано по умолчанию);
• -E – преобразовывать все символы p, H из русских в английские;
• -R – преобразовывать все символы p, H из английских в русские;
• -N – оставлять все p, H (русские и английские) как в исходном тексте (задано по умолчанию);
• -e – перекодировать все символы 0x80 – 0xFF;
• -s – перекодировать только 64 символа русского алфавита (задано по умолчанию),
а cp_from и cp_to – любой из следующих символов, обозначающих возможные кодировки (по умолчанию – W,K).
Таблица 12.1. Обозначение кодировок в программе re.