Программу 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.
Символ |
Кодировка |
Символ |
Кодировка |
W |
Windows |
_ (подчеркивание) |
_xxe |
D |
Dos |
% |
%hex |
K |
KOI-8 |
\\ |
\'hex |
L |
Latin |
G |
Graph_win |
I |
Iso |
‹ |
binhex |
H |
HEX |
+ |
+UTF7- |
S |
ShiftKbrd |
C |
C_MIC |
M |
Mac |
Y |
Y_c16 |
A |
AFF |
Z |
Z_c32 |
O |
Odd(UTF8_1) |
F |
F(UTF8_2) |
B |
Base64 |
P |
Pict |
E |
Express |
N |
N_Estl |
T |
T-Html |
V |
V_Vpp855 |
U |
User |
X |
X_sp |
- (тире) |
uue |
J |
J_diff |
Как уже было сказано, если cp-from="?", то программа пытается самостоятельно определить кодировку исходного файла.
Если у вас по каким-либо причинам не оказалось ни одной из указанных программ-перекодировщиков, то для просмотра содержимого файла можно воспользоваться одним из браузеров Интернет, которые изначально ориентированы на работу с разными кодировками. Например, сгодится обычный lynx:
[user]$ lynx -assume_local_charset cp866 file.txt
Можно также загрузить "нечитаемый" файл в Netscape Navigator, после чего поменять кодировку через меню View / Character Set.
12.3. Проверка правописания
Прежде, чем перейти к рассмотрению текстовых редакторов под Linux, необходимо кратко рассмотреть программу проверки правописания ispell. Дело в том, что проверка правописания - это одна из функций, которую должен иметь современный текстовый редактор, и многие из них подключают для выполнения этой функции именно ispell (или aspell). Существует русифицированный вариант этой программы, которой был разработан Владимиром Рогановым и Константином Книжником.
Установка ispell состоит из двух этапов: вначале надо установить саму программу, а затем установить словарь русского языка. Для установки самой программы ispell я воспользовался пакетом ispell-3.1.20-23.i386.rpm, а для его русификации - пакетом ispell-russian-3.1.20-23.i386.rpm. Оба пакета входили в состав дистрибутива Black Cat Linux 6.02. Для установки первого пакета достаточно дать команду
[root]# rpm -i ispell-3.1.20-23.i386.rpm
а для второго - команду
[root]# rpm -i ispell-russian-3.1.20-23.i386.rpm.
После этого в каталоге /usr/lib/ispell появятся файлы русского словаря russian.aff и russian.hash (остальные словари, например, немецкий) можно удалить, если вы не собираетесь производить проверку правописания на этих языках.
Читать дальше