Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Ошибка базы данных: Table 'a111530_forumnew.rlf1_users' doesn't exist
На главную -> MyLDP -> Тематический каталог -> Локализация и русификация Linux


(c) Xoid26, 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 (Special Thanx 2 DeyS, http://deys.fromru.com).

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

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

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

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

"А добавлять, например, 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 можно подробнее прочитать в выпуске #7 (статья "Подключаем TTF шрифты к X-Window"). Сам я это не пробовал (как всегда, не хватает времени), так что все комментарии - на deys@inbox.ru.

И еще в моей коллекции документов по Linux нашлось 2 документа по этой проблеме. Откуда я их скачал - не помню, так что ищите сами :) по ключевым словам "Как я прикручивал кодировку cp1251 (Виндовс) к X-ам" и "Как я русифицировал свою консоль (включая и cp1251)". И вообще, если у вас есть какой-нибудь вопрос или проблема - качайте эту страничку (поиск по 18 поисковым системам Рунета с одной страницы), и ищите решение в Инете! Ведь документов по Linux в Интернете больше, чем документов по любой другой OS...



Средняя оценка 2 при 1 голосовавших

Комментарии