Замечание к документу "2 Byte"   >>>   
Тема: 2 Byte

Создан:Nikolay N. Iontsev 07/09/1996 09:48 AM
Модифицирован:Sergei V. Budylov 04/08/1998 03:39 PM
Папка:
Тип сообщения:
Мне лень заполнять это поле

Сообщение:
Следующий текст в двухбайтовой кодировке русских букв.
Фирма Lotus в продукте Notes хранит в базах текстовую информацию любого типа (и в полях типа Text, и внутри полей типа RichText) в кодировке LMBCS. В этой кодировке один символ кодируется несколькими байтами: английские буквы - одним байтом, русские - двумя, китайские, японские, корейские - тремя... Внутри базы допускаются тексты, в которых рядом находятся и английская буква, и русская буква, и японский иероглиф. При выводе текстовой информации из баз на экран происходит перекодирование ее из LMBCS в кодировку, поддерживаемую машиной (native). Перекодировка ведется по таблицам .cls. При этом не на всех платформах такое преобразование может работать. Если какой-то символ из текста в базе по текущей таблице перекодировки не может быть сопоставлен символу в кодировке машины, он будет виден на экране на Windows-платформах как что-то среднее между мягким знаком и буквой Б, а в OS/2 - в виде полностью закрашенного квадрата.

Notes использует в качестве таблиц перекодировки l_cpdos.cls, l_cpwin.cls - только Windows-подобные платформы, а сортировки - collstd.cls.

Для России Lotus считает законной двухбайтовую кодировку русских букв, когда файлы перекодировки и сортировки выбраны так:
copy l_cp866.cls l_cpdos.cls
copy l_cp1251.cls l_cpwin.cls (кроме OS/2)
copy collcyr.cls collstd.cls
l_cp866.cls l_cp1251.cls collcyr.cls
Когда ставится русский клиент, это "копирование" происходит автоматом.

Однако Lotus приняла соглашение о двухбайтовой кодировке русских букв только после того, как Notes стали применять в России. В те далекие времена и другого то варианта не было, как установить продукт со следующими файлами кодировки и сортировки
copy l_cp437.cls l_cpdos.cls
copy l_cp1252.cls l_cpwin.cls
copy collus.cls collstd.cls
Когда ставится английский клиент или сервер, именно такой выбор таблиц происходит автоматом. В этом случае символы с кодами от 128 до 255 в основном соответствуют греческим буквам (такими их считает Notes), Notes-ом сортируются по гречески, но за счет руссификатора и фонтов рисуются на экране как русские буквы.
Однако при установке и сервера, и клиента Notes пытается разобраться, какие кодовые страницы выбраны на машине, и какие соответствующие таблицы перекодировки выбрать ему, но без особого успеха.

Наконец, умельцы из Киева хакерски разобрались со структурой таблиц перекодировки и сделали свои собственные cls, которые, если их скопировать в collcyr.cls в collstd.cls, l_cp866.cls в l_cpdos.cls, l_cp1251.cls в l_cpwin.cls, будут перекодировать из LMBCS в кодировку машины так, что и русские буквы в двухбайтовой кодировке, и русские буквы в однобайтовой кодировке русуются на экране нормально. Но новая информация в базу пишется в двухбайтовой кодировке.

Collcyr.clsL_cp866.clsl_cp1251.cls

Последняя версия CLS файлов из Киева, при которых ищутся слова с "р" и "*", "ж" и "*", при этом надо указать Case sensitive при создании индекса.:
Collcyr.clsL_cp866.clsФайл l_cpwin.cls остается из предыдущего набора. Необходимо опять же провести копирование этих файлов в базовые cls файлы.

Для правильного экспорта из Notes скопируйте l_cp1251.cls в l_cp1252.cls.


Иерархия документов данной дискуссии:
Русские буквы ? (Egor M) (09.07.1996 9:47:02)
.... 1 Byte (Egor M) (09.07.1996 9:50:10)
........ Не смог прочитать этот документ из Ineta - Непонятно какая кодировка! (Andrey V. Dmitriev) (13.04.2000 6:47:13)
............ Там то же самое, что и во втором документе, но в однбайтовой кодировке LMBCS. Как и написано! :)))) (Oleg G. Taranchenko; NotesSrv400) (13.04.2000 11:48:03)
.... 2 Byte (Nikolay N. Iontsev) (09.07.1996 9:48:43)
........ OS/2 & NLM () (20.02.1997 17:52:45)


Разработчикам и администраторам: курсы, книги, сертификация