Поддержка кодировки KOI8-U различным программным
обеспечением
Здесь рассматривается использование различного программного обеспечения
при работе с кодировкой koi8-u. Во многих случаях здесь упоминается
кодировка
koi8-r. Это вызвано тем, что кодировка koi8-u еще не принята как
официальный
стандарт, и не может поддерживаться большинством программных продуктов.
В данном случае, существует близкая к koi8-u кодировка koi8-r, которая
стандартизована в RFC-1489
и должна поддерживаться приложениями, работающими в Internet. Она
является
очень близкой к предлагаемому стандарту, и часто позволяет с
минимальными
изменениями и доработками в конфигурации работать также с koi8-u.
Другие страницы по настройке поддержки KOI8-U
Проверка совместимости программного обеспечения с кодировками, и
визуализация
koi8-u
- Просмотрите верхнюю часть кодовой
таблицы
koi8-u и
сравните ее с тем, как ее интерпретирует ваш WWW-клиент.
- Проверьте, как ваш WWW-клиент обрабатывает строки <TITLE>.
- Выключите загрузку изображений в вашем WWW-клиенте и перейдите к этой
странице теста, чтобы провериить, как ваш WWW-клиент отображает
строки ALT
в кодировке koi8-u (перезагрузите эту страницу несколько раз и
попробуйте
увидеть текст ALT перед загрузкой изображения). Если ваш
WWW-клиент
правильно поддерживает кодировку в ALT - вы увидите текст в данной
кодировке
(также как на изображении), в противном случае, вы увидите
неразборчивый
текст.
- Согласно интернационализации HTML (RFC2070),
поле charset в заголовке HTTP-запроса должно отменять
значение charset
определенное через <META ...>. Загрузите эту тестовую
страницу с различным полем charsets в заголовке HTTP-запроса и МЕТА
и посмотрите, в какой кодовой таблице отображается текст в WWW-клиент.
Если ваш WWW-клиент обрабатывает это правильно, - вы увидите текст
koi8-u
а не неразборчивый текст в кодировке cp1251. Для более устойчивой
работы
вашего броузера, проверьте установки Document Encoding Settings
или Document Info, чтобы увидеть фактически установленную
кодировку.
- Когда кириллица (koi8-r) установлена как Document Encoding,
в
более
старых версиях Netscape Navigator'а (или когда это установлено как
кодировка
по умолчанию командой Set Default), наибольшее количество
текстово
ориентированных Java-аплетов выполняются неудачно - это выглядит как
если
бы значения <PARAM> не были переданы в аплет вообще. NullPointerException
становится наиболее частой ошибкой. Это может быть исправлено
установкой Document
Encoding в Western(Latin1).
Таблица сравнения WWW-клиентов на совместимость с koi8-r/koi8-u**)
Tests: |
Font |
Special Chars |
FORM Input |
Title |
ALT= text |
ACCEPT_
CHARSET |
META charset= |
Text Java applets |
HTTP over META |
Netscape 3.01 (MS Windows) (*) |
Yes |
No |
Yes |
No |
No |
No |
Yes |
No |
No |
Netscape 4.0b4 (MS Win95) |
Broken (1) |
Yes |
Yes |
Yes |
Yes |
Broken (2) |
Yes |
Yes |
No |
Netscape 3.01 (X11) (3*) |
Yes |
No |
No |
Yes (4) |
Yes |
No |
Yes |
No |
No |
Netscape 4.0b3 (X11) (5*) |
Yes |
No |
No |
Yes (4) |
Yes |
Broken (2) |
Yes |
Broken (6) |
No |
MS Internet Explorer 4.0b1 |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
Yes |
Yes |
Yes |
MS Internet Explorer 3.02 |
Yes |
Yes |
No |
No |
No |
No |
Yes |
Yes |
No |
Lynx 2.7.1 (6*) |
N/A |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
N/A |
Yes |
Tango 2.5 |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
Yes |
N/A |
Yes |
Ariadna 1.2b3 |
Broken (7) |
Yes |
Yes |
Yes |
N/A |
No |
Yes |
Yes |
No |
(*) Требуются шрифты koi8-u:
**) Данная таблица заимствована с оригинальной страницы по KOI8-R http://koi8.pp.ru/
(1) Допустимы только символы и специальные объекты
HTML,
другие символы отображаются неправильно.
(2) Только unalterable, iso-8859-1 и utf-8
(3) Требуется дополнительная нестандартная настройка
(4) Зависит от настроек Window Manager
(5) Java не может выполняться с определенными
значениями
системной переменной LANG (и соответствующими locale), например uk_UA.KOI8-U.
(6) Текст-ориентированные WWW-клиенты, в ваш терминал
должны
быть предварительно загружены соответствующие шрифты.
(7) Корректная работа только с буквами, специальные
символы
отображаются неправильно.
Как создавать и обрабатывать HTML-документы в koi8-u
Cуществует два метода определить, что ваш документ написан в
специфической
кодировке, типа koi8-u:
- Со стороны клиентской части
- Со стороны сервера (метод конфигурации HTTP-daemon'а)
Если вы не используете ни один из их, ваш документ обрабатывается как
Latin1
документ, то есть набор символов по умолчанию (ISO 8859-1) принимается
согласно стандартам.
Замечание: Большинство людей никогда не беспокоятся о том,
чтобы следовать стандартам написания HTML-документов в кириллице, много
из которых, написанных в кодировке koi8 или cp1251, или не имеют
атрибута
charset, или он установлен неправильно. В результате чего WWW-клиенты,
которые придерживаются стандартов, могут отображать такие документы,
используя
кодировку Latin1 (ISO 8859-1), что делает текст полностью
нечитабельным.
Это не вина WWW-клиента. В этом случае рекомедуется обратиться к автору
HTML-документа, и попросить его привести их в соответствие со
стандартами,
используя один из методов, описанных здесь.
- Как запросить у удаленного сервера документ в нужной кодировке
- Как сообщить удаленному серверу о локально установленной
кодировке.
- Обработка других ресурсов Internet с кириллицей, которые
обслуживаются
не через HTTP.
- Настройка Apache HTTPD для поддержки кодировки koi8-u
Windows 95, 98
Для стандартного Windows95, установите многоязыковую поддержку. В
группе
Control Panel -> Add/Remove Programs, выберите "Windows Setup" и
удостоверьтесь,
что установлена MultiLanguage
Support. Этот пункт включен в поставку версии PanEuropian, и
устанавливается
по умолчанию. То же касается и Русской версии Windows95. (В стандартной
американской версии требуется ее доустановка.
Windows95 предъявляет более строгие требования к шрифтам. Для
нормальной
работы требуется наличие всех вариантов шрифтов (жирный, курсив, жирный
курсив), и если присутствуют только нормальные варианты шрифта - на
местах
использования несуществующих вариантов отображаются пробелы.
KOI8-U and Cyrillic CP1251 Windows TTF
Fonts
Применяемое программное обеспечение:
Этот список включает только 32-битное программное обеспечение.
Настройка Программного Обеспечения:
- Как настроить почтовый агент Eudora for Windows для работы с
koi8-u.
- Как настроить Netscape Messenger для работы с koi8-u.
- Как устанавливать ForteAgent для koi8-u.
X Window
Обычное место для этих шрифтов -
/usr/X11R6/lib/X11/fonts/cyrillic/koi8-u
но если вы не можете изменять системные директории, поместите их в
любой
директории. Система должна сначала обращаться в эту директорию в списке
FontPath, (смотрите /etc/XF86Config или подобный ему файл конфигурации
в вашем варианте X11), если вы устанавливаете шрифты в системном
директории,
или наберите команду:
xset +fp koi8-u
чтобы добавить их локально в конфигурацию системы.
Для проверки, стоит ли небходимая директория первой в списке,
используйте команду:
xset q
Locales:
Для koi8-u пока не существует locale. До его подготовки можно
использовать
существующий locale для koi8-r.
- X11R5
NLS Распакуйте его в /usr/{X386, X11R6,... }/lib/X11/. Это
необходимо
для того, чтобы Netscape мог быть способен вырезать и вставлять русский
текст. Если вы не можете изменять системные директории, поместите это в
любой каталог и в этом случае установите системную переменную XNLSPATH
так, чтобы она указывала на эту директорию.
- X11R6
Locale. Распакуйте это в /usr/X11R6/lib/X11/locale. Это не нужно
для
XFree86 3.2, так как оно уже включено в стандартную поставку.
Клавиатура:
В XFree86 3.2 уже заложена возможность работы с различными кодировками,
такими, как koi8-u. В файле /usr/X11R6/include/X11/keysymdef.h
определены
имена всех необходимых символов, но работа с ними через клавиатуру не
стандартно
не предусмотрена. Существует два способа сделать возможной работу с
кодировкой
koi8-u.
С использованием Xkb.
В этом случае вам необходимо выполнить следующие дейстия:
- Перезаписать файлы:
/usr/X11R6/lib/X11/xkb/keymap/xfree86
/usr/X11R6/lib/X11/xkb/keymap.dir
- Добавить файл:
/usr/X11R6/lib/X11/xkb/symbols/ua
- В файле /etc/XF86Config:
Закоментировать строку:
XkbDisable
- Заменить соответствующую строку на:
- "xfree86(ua)"
- C использованием Xmodmap
Здесь приведен файл .Xmodmap-ua, который переопределяет клавиши
для
работы в koi8-u. Данная раскладка клавиатуры пока не стандартизована,
но
она уже используется в FreeBSD. Обычное расположение для файла .Xmodmap
- директоря:
/usr/X11R6/lib/X11/xinit
Вы можете расположить данный файл в указанной директории, или в любом
другом месте, если вам не даны полномочия изменять системные
директории.
В таком случае, вам необходимо, например, в файле .xinitrc вписать
следующую
строку:
usermodmap=$HOME/.Xmodmap-ua
соответственно, расположив этот файл у себя в "home"-директории. При
этом строка
XkbDisable
файла /etc/XF86Config должна быть раскоментирована.
Замечание: В версии XFree86 3.1.2 применим только
метод
с использованием Xmodmap. Одновременно оба метода для разных
пользователей
одной системы не могут быть использованы. Явный признак ошибочного
использования
их одновременно - некорректная работа некоторых клавиш в основном
цифровой
клавиатуры.
Метод с Xkb потенциально более удобен для возможных доработок, которые
могут позволить работать с несколькими раскладками клавиатуры (более
двух,
как это реализовано в данном варианте /usr/X11R6/lib/X11/xkb/symbols/ua
Кроме того, для работы Netscape в директории
/usr/X11R6/lib/X11/nls
должны присутствовать файлы данного
архива
Local archive of supplement
packages
for XFree Cyrillisation
Применимое программное обеспечение:
WWW-клиенты:
- Netscape 4.5, 4.6 (X11) (поддерживает koi8-r)
См. также как устанавливать Netscape 4.x для работы с koi8-r
Должны быть установлены KOI8-R шрифты
Электронная почта:
- Netscape Messenger - Входит в состав Netscape 4.x и
поддерживаетKOI8-R
- XMH - Поддерживает KOI8-R и KOI8-U при правильно
установленном X
Windows
MS-DOS
Настройка Программного Обеспечения:
UNIX
Для работы с koi8-u в FreeBSD существует комплект
необходимых файлов, подготовленный Игорем
Свиридовым Он включает в себя locale LC_CTYPE.
До разработки соответствующего koi8-u рекомендуется использовать
аналогичный
LC_COLLATE
из локализации для koi8-r Шрифты из данного комплекта соответствуют
кодировке ruscii а файлом,управляющим выводом на экран, осуществляется
перекодировка в соответствии с кодировкой koi8-u.
В оригинальном комплекте, предлагаемом Свиридовым содержатся
также
скрипты для доустановки их в стартовые скрипты системы, которые
приводят
в рабочее состояние шрифты и клавиатуру koi8-u. Видимо, это было
сделано
для более старых версий FreeBSD. Однако, после копирования всех
необходимых
файлов достаточно произвести следующие изменения в файлах системной
конфигурации:
- Добавить в файл /etc/sysconfig строки (или заменить ими
существующие):
- keymap=/usr/share/syscons/keymaps/uk_ua.koi8-u.kbd
- scrnmap=/usr/share/syscons/scrnmaps/koi8-u2ruscii
- font8x16=/usr/share/syscons/fonts/ruscii-8x16.fnt
- font8x14=/usr/share/syscons/fonts/ruscii-8x14.fnt
- font8x8=/usr/share/syscons/fonts/ruscii-8x8.fnt
- Добавить в файл /etc/csh.login строку:
[ -f .locale ] || setenv LANG uk_UA.KOI8-U
Linux
Наиболее полное описание, как настроить Linux для работы с KOI8-U
подготовлена
Денисом Дмитриенко из Cinet, Chernigiv -
http://www.cinet.cn.ua/NOC/ukr/
Для работы с koi8-u в Linux существует пакет, подготовленный Игорем
Романенко при помощи Андрея Блохинцева, Игоря Свиридова, Руслана
Белкина,
Станислава Вороного и Дмитрия Кохманюка.
Применимое программное обеспечение:
- WWW-клиетны:
Newsreaders:
- TIN1.3
Алфавитно-цифровой агент новостей, для работы с koi8-u требуется только
установить переменную окружения setenv MM_CHARSET в koi8-u)
Электронная почта:
- ELM-2.4ME +
(расширенная версия
почтового агента Elm, поддерживает MIME, PGP, и так далее)
Настройка:
В файле
- ~/.elm/elmrc
установите: - charset = KOI8-R
- displaycharset = KOI8-R
- Pine3.96
Пользовательский агент для чтения почты/новостей, имеет большие
возмжности
(включая поддержка удаленного почтового ящика, и др.).
Настройка Pine: в режиме (S)ETUP -> (C)ONFIGURE
устанавлите enable-8bit-esmtp-negotiations,
enable-8bit-nntp-posting и pass-control-character-as-is.
Затем, установите character-set в koi8-u, и сохраните установки.
Замечание: этот метод работает только с ESMTP-совместимыми
sendmail.
Prepared by Dmitry Volodkovich.
Edited by Yuriy Demchenko.