Администрирование Lotus Notes 4.1x и Lotus Domino 4.5

         

О двухбайтовой кодировке русских букв


Текстовая информация любого типа (в полях типа Text, RichText - кроме объектов и присоединенных файлов, Names ...) в базах данных Notes хранится в кодировке LMBCS (Lotus MultiByte Character Set). В кодировке LMBCS один символ кодируется, вообще говоря, несколькими байтами: английские буквы - одним байтом, русские - двумя, китайские, японские, корейские - тремя... В базе данных Notes в принципе допустимы тексты, в которых "рядом" могут встречаться и английские буквы, и русские буквы, и японские иероглифы.

Однако при выводе текстовой информации из баз данных на экран клиента Notes происходит ее перекодирование из кодировки LMBCS в кодировку, поддерживаемую данным компьютером (так называемую native). Наоборот, введенная с клавиатуры текстовая информация (в кодировке native) при записи в базу данных перекодируется в LMBCS. Перекодировка ведется по таблицам перекодировки, которые хранятся в каталоге программ Notes в файлах с именами l_cp*.cls. При этом не на всех платформах такое преобразование может работать взаимно однозначно - в настоящее время в кодировке native символ обычно кодируется только одним байтом. Если какой-то символ из текстового поля в базе данных по используемой на станции таблице перекодировки не может быть сопоставлен символу в кодировке native, он заменяется на символ с кодом 128 (0х7F), который обычно "будет виден" на экране на Windows-платформах как "Ђ" или "черный прямоугольник" под OS/2.

Кроме того, при построении индексов видов в базах сортировка текстовой информации выполняется с использованием таблиц сортировки, которые хранятся в каталоге программ Notes в файлах с именами coll* .cls.

Станция и сервер Notes используют в качестве "активных" таблиц перекодировки файлы l_cpdos.cls (Windows и OS/2), l_cpnlm.cls (только сервер под Novell NetWare), l_cpwin.cls (только Windows), а сортировки - collstd.cls. Для "правильной" поддержки русского языка сразу после первой фазы установки сервера или станции Notes вам необходимо "записать" в эти файлы соответствующие таблицы:


·        Windows-подобные платформы:

l_cp866.cls ® l_cpdos.cls

l_cp1251.cls ® l_cpwin.cls

collcyr.cls ® collstd.cls

·        OS/2:

collcyr.cls ® collstd.cls

·        Novell NetWare:

l_cp866.cls ® l_cpnlm.cls

collcyr.cls ® collstd.cls

Выполнять эту операцию на Windows-платформах проще всего следующим BAT-файлом

REM Двухбайтовая кодировка русских букв

copy l_cp866.cls l_cpdos.cls

copy l_cp1251.cls l_cpwin.cls

copy collcyr.cls collstd.cls

Поместите BAT-файл в каталоге программ Notes. Файлы l_cp866.cls, l_cp1251.cls, collcyr.cls входят в состав интернациональной версии Notes. Выполнение файла перед запуском Notes обеспечит двухбайтовую кодировку русских букв и правильную сортировку по русским буквам. BAT-файл выполняется однократно - и впоследствии Notes при старте использует информацию из файлов l_cpdos.cls, l_cpwin.cls, collstd.cls. Такая же операция должна быть однократно проделана и на сервере Notes, причем желательно сразу после его установки. Обратите внимание, что после upgrade существующего сервера или станции на более новую версию Notes файлы l_cpdos.cls, l_cpwin.cls, collstd.cls заменяются одноименными файлами с дистрибутива, поэтому перед запуском "обновленных" сервера или станции необходимо снова однократно выполнить "русифицирующий" BAT-файл.

Разрабатывайте новые приложения Notes только с использованием двухбайтовой кодировки русских букв.

Признаком того, что текущая установленная на станции или сервере кодировка русских букв не соответствует кодировке текстовой информации в базе данных, является появление на экране вместо русских букв символов "Ђ" (или "черных прямоугольников" под OS/2). Однако "отображение греческих букв вместо русских" - уже проблема, связанная со шрифтами, и не имеющая никакого отношения к используемой в Notes "внутренней" кодировке.

И, наконец, практика показывает, что для правильного экспорта русскоязычных текстов из Notes через буфер обмена в Microsoft Word достаточно скопировать файл l_cp1251.cls в l_cp1252.cls.


Содержание раздела