LinuxBegin.ru - offline-версия от 26.04.2004
Главная | Все темы | Все статьи | Ссылки | Аналоги Windows-программ в Linux | Top 20

Меняем кодировки.
(Локализация, шрифты, кодировки)


- Valery V. Kachurov, 9.12.01. -

Основная русская кодировка в Linux - это Koi-8. Но иногда требуется работать с текстами в основной кодировке Windows (cp1251), и другими кодировками русского языка. Для просмотра текстов в кодировках, отличных от koi-8, самый простой путь - это открыть этот текст в броузере и выбрать нужную кодировку. (Это - универсальный способ, и я пользуюсь только им). Но существуют и специальные программы для перекодировки русских текстов:

1) iconv. Стандартная программа, есть в любом дистрибутиве. Список доступных кодировок можно увидеть по команде iconv --list. Названия кодировок должны соответствовать их именам в /usr/share/i18n/charmaps. Пример использования: iconv -f CP1251 - t KOI8-R file.txt > file.new.txt перекодирует foo.txt из cp1251 в koi8-r.

2) recode. Еще одна стандартная программа для перекодировок текстов под Uinx/Linux.

3) Russian Anywhere for UNIX. Единственная программа для Linux, которая может автоматически определять кодировку текста. Но ссылка на домашней странице указывает на несуществующий файл, так что вам придется самим искать файл re-0.1-bin.tar.gz через Files.ru, Filesearch.ru или Reliz.ru.

4) ManChr 2. Простейший скрипт для перекодировки русских текстов. Занимает всего 3 Kb в исходниках. 5 кодировок, просто и надежно :).

5) Tcod. Еще один простейший скрипт. Есть подозрение, что это - то же самое, что и пункт 3.

В большинстве программ под Linux можно использовать скрипты, так что процесс перекодировки можно элементарно заложить в скрипт и максимально упростить. Пример - просмотр текстов в кодировке cp1251 через Midnight Commander:

"Для того, чтобы просто читать, а не редактировать, я вставил в менюшку Миднайта (F2) команды, которые посылают перекодированный текс на Less. Это делается в файле /usr/lib/mc/mc.menu. Синтаксис довольно прост (я напишу в том виде, как это сделано у меня):

w Чтение в кодировке CP1251
iconv -f CP1251 -t KOI8-R %f | less -M

Для того, чтобы прочитать файл в кодировке СР1251, я просто выбираю его в панели (навожу на него курсор), нажимаю F2 и "горячую клавишу" w и все;)".

Теперь - более серьезная вещь: редактирование текстов в кодировке cp1251. Для этого просто достаточно выбрать шрифт с кодировкой cp1251, и все! Вот информация о том, как это сделать:

"А добавлять, например, CP1251 в систему не сложно. Если есть поддержка TrueType, то просто после того, как шрифты будут положены на место и будет сделана команда ttmkfdir, нужно в файлах fonts.dir и fonts.scale подредактировать некоторые строчки. Я делал так. Удалил из этих файлов все кодировки кроме "koi8-r" и "koi8-ru" и для каждого шрифта добавил запись с кодировкой "microsoft-cp1251". Потом посчитал сколько всего получилось строк и в начале файла (там стоит цифра, которая указывает на количество записей шрифтов) указал то, что у меня получилось. Теперь под Хами у меня есть возможность использовать шрифты в этих кодировках. Например, в nedit можно "на лету" просто поменять кодировку. Или запустить, к примеру, xedit, указав ему нужный шрифт. Оказалось, что все не так уж и сложно, хотя над этой проблемой я бился несколько месяцев..

Для большей наглядности - строки из файла fonts.scale для шрифта timesi.ttf:
timesi.ttf -monotype-Times New Roman-medium-i-normal--0-0-0-0-p-0-koi8-ru
timesi.ttf -monotype-Times New Roman-medium-i-normal--0-0-0-0-p-0-koi8-r
timesi.ttf -monotype-Times New Roman-medium-i-normal--0-0-0-0-p-0-microsoft-cp1251".

Остается только добавить, что о добавлении шрифтов TTF и файле fonts.dir можно подробнее прочитать, например, в статье "Подключаем TTF к X-Window".

Просмотров: 4585  |  Рейтинг статьи: 5 (Голосов: 4).
5
Дата размещения статьи: 2002-12-07 18:21:42



5 последних поступлений в раздел Локализация, шрифты, кодировки:

29.12.03: Русификация загрузки Slackware Linux 9.1 (Описывается русификация сообщений во время загрузки системы, а также приглашения ввода пароля. Заодно...)
25.04.03: Русификация Linux (Подробная статья о русификации консоли, консольных утилит и X Window System. А так же - информация о ...)
16.01.03: Red Hat Linux 8.0: проблемы кириллизации консоли (30 сентября компания Red Hat, Inc. выпустила восьмую версию своего дистрибутива Linux. Как известно, ...)
22.12.02: Как настроить русский в Линуксе. (Честно говоря, ужасно надоело читать транслит всяких там kewl 31337 linuxoid-ов, поэтому надеюсь, что...)
12.12.02: The Linux Cyrillic HOWTO Russian (Евгений Балдин) (http://www.linux.org....)

Комментарии:

Re: Меняем кодировки. (Оценка: 0)
от Anonymous на 14.02.04
+++++++++++++++++++++++++++++++++++++++
"Для того, чтобы просто читать, а не редактировать, я вставил в менюшку Миднайта (F2) команды, которые посылают перекодированный текс на Less. Это делается в файле /usr/lib/mc/mc.menu. Синтаксис довольно прост (я напишу в том виде, как это сделано у меня):

w Чтение в кодировке CP1251
iconv -f CP1251 -t KOI8-R %f | less -M


Для того, чтобы прочитать файл в кодировке СР1251, я просто выбираю его в панели (навожу на него курсор), нажимаю F2 и "горячую клавишу" w и все;)".
++++++++++++++++++++++++++++++++++++++++++
Я сделал так:
e Edit file on CP1251
iconv -f CP1251 -t KOI8-R %f -o '%f'.tmp ;mcedit '%f'.tmp;iconv -f KOI8-R -t CP1251 '%f'.tmp -o %f;rm -f '%f'.tmp
То же самое для файла меню редактора cedit.menu дает редактировать файл в 1251 нажав f11.
для просмотрщика меняем mcedit на mcview.


-- Hawk

--


LinuxBegin.ru © 2003-2004 Valery V. Kachurov | Условия использования материалов | О проекте