Многобайтовый набор символов Lotus

Система кодировки символов

Lotus Multi-Byte Character Set ( LMBCS ) — это фирменная кодировка многобайтовых символов, изначально задуманная в 1988 году в Lotus Development Corporation при участии Боба Балабана и других. [1] Созданная примерно в то же время и решающая некоторые из тех же проблем, LMBCS можно рассматривать как параллельную разработку и возможную альтернативу Unicode . [1] Для максимальной совместимости более поздние выпуски LMBCS включают UTF-16 в качестве подмножества. [2] [3]

В коммерческом плане LMBCS впервые был представлен как набор символов по умолчанию в Lotus 1-2-3 Release 3 для DOS в марте 1989 года [1] [4] и в Lotus 1-2-3/G Release 1 для OS/2 [1] в 1990 году, заменив 8-битный Lotus International Character Set (LICS) и ASCII, использовавшиеся в более ранних версиях Lotus 1-2-3 и Symphony только для DOS . [5] LMBCS также используется в IBM / Lotus SmartSuite , Notes и Domino , [1] а также в ряде сторонних продуктов.

LMBCS кодирует символы, необходимые для языков, использующих латинское [6] , арабское , еврейское , греческое и кириллическое [6] письмо, тайскую , китайскую , японскую [6] и корейскую письменности, а также технические символы.

Кодировки

Технически LMBCS представляет собой кодировку ведущих байтов, в которой кодовая точка 00 hex , а также кодовые точки от 20 hex (32) до 7F hex (127) идентичны ASCII [1] (а также LICS). [5]

Кодовая точка 00 hex всегда рассматривается как символ NUL для обеспечения максимальной совместимости кода с существующими библиотеками программного обеспечения, работающими со строками с нулевым завершением [1] во многих языках программирования , таких как C. [a] Это применимо даже к кодам UTF-16be, где кодовые слова с формой xx00 hex сопоставляются с кодами частного использования с формой F6xx hex во время кодирования, чтобы избежать использования байтов NUL, [7] и к экранированным управляющим символам, где 20 hex добавляется к управляющим символам C0 (но не C1) после ведущего байта 0F hex . [7]

Кодовые точки от 01 hex до 1F hex , которые служат управляющими кодами в ASCII, используются в качестве ведущих байтов для переключения определения кодовых точек выше 7F hex между несколькими кодовыми группами (аналогично кодовым страницам ) и в то же время определяют либо одно-, либо многобайтовую природу для соответствующей кодовой группы. [1]

Например, кодовая группа 1 (с групповым байтом 01 hex ) [1] почти идентична кодовой странице SBCS 850 , тогда как кодовая группа 16 (с групповым байтом 10 hex ) [1] похожа на японскую кодовую страницу MBCS 932. Таким образом, многобайтовые символы могут занимать два или три байта. [7] [6]

В каноническом LMBCS каждый символ начинается со своего группового байта. [1] Чтобы уменьшить длину, в оптимизированном или сжатом LMBCS группа кода по умолчанию или код группы оптимизации могут быть определены для каждого приложения или процесса (в идеале выбирается в соответствии с наибольшей вероятностью появления) [1] и должны быть сообщены интерпретирующему коду каким-либо образом (например, путем указания соответствующего имени "LMBCS- n "). [8] Таким образом, групповой байт для этих символов может быть опущен. [1] Lotus 1-2-3 извлекает код группы оптимизации из заголовка файла соответствующего исходного файла, [7] тогда как для Lotus Notes код группы оптимизации всегда фиксирован и равен 01 hex . [2] [7]

По умолчаниюГруппаБайтыОписание
Н/Д00 шестнадцатеричный1 [7]НУЛЕВОЙ
ЛМБКС-101 гекс2 [7]Кодовая страница 850 (DOS Latin-1) [2] [7]
ЛМБКС-202 шестнадцатеричный2 [7]Кодовая страница 851 (DOS греческий) [2] [7]
ЛМБКС-303 гекс2 [7]Кодовая страница 1255 (Windows Hebrew) [2] [7]
ЛМБКС-404 шестнадцатеричный2 [7]Кодовая страница 1256 (Windows Arabic) [2] [7]
ЛМБКС-505 гекс2 [7]Кодовая страница 1251 (Windows Cyrillic) [2] [7]
ЛМБКС-606 шестнадцатеричный2 [7]Кодовая страница 852 (DOS Latin-2) [2] [7]
Н/Д07 шестнадцатеричный1 [7]БЕЛ [2]
ЛМБКС-808 шестнадцатеричный2 [7]Кодовая страница 1254 (Windows Turkish) [2] [9] [7]
Н/Д09 шестнадцатеричный1 [7]ВКЛАДКА [2] [9] [7]
Н/Дшестнадцатеричный1 [7]ЛФ [2] [9] [7]
ЛМБКС-110B шестнадцатеричный2 [7]Код страницы 874 (тайский) [9] [7]
(ЛМБКС-12)0C шестнадцатеричный2 [7]Зарезервировано [2]
Н/Д0D шестнадцатеричный1 [7]CR [2] [9] [7]
(ЛМБКС-14)0E шестнадцатеричный2 [7]Зарезервировано [2]
(ЛМБКС-15)0F шестнадцатеричный2 [7]Переназначенные коды управления C0/C1 [7]
ЛМБКС-1610 гекс3 [7]Кодовая страница 932 / [2] 943 [7] (Японский / Shift-JIS) [2] [9]
ЛМБКС-1711 гекс3 [7]Код страницы 949 / [2] 1261 [7] (корейский) [2] [9]
ЛМБКС-1812 гекс.3 [7]Кодовая страница 950 [2] [7] (Традиционный китайский / Тайвань / Big5 ) [2] [9]
ЛМБКС-1913 гекс3 [7]Код страницы 936 / [2] 1386 [7] (упрощенный китайский) [2] [9]
(ЛМБКС-20)14 гекс.3 [7]UTF-16 ( Юникод ) [2] [3] [7]
Н/Д15 гекс.3Зарезервировано [2]
Н/Д16 гекс.3Зарезервировано [2]
Н/Д17 гекс.3Зарезервировано [2]
Н/Д18 гекс.3Зарезервировано [2]
Н/Д19 гекс.1 [7]Диапазон систем Lotus 1-2-3 [9] [7]
Н/Дшестигранник3Зарезервировано [2]
Н/Д1B шестигранник3Зарезервировано [2]
Н/Дшестнадцатеричный3Зарезервировано [2]
Н/Д1D шестигранник3Зарезервировано [2]
Н/Д1E гекс3Зарезервировано [2]
Н/Д1F шестигранник3Зарезервировано [2]

Набор символов

Без префиксного байта кодовые точки с 32 (20 hex ) по 127 (7F hex ) интерпретируются следующим образом (соответствуют кодам LMBCS с 32 по 127):

Однобайтовые коды ( ASCII / ISO-646-US [10] )
0123456789АБСДЭФ
2x СП !"#$%&'()*+,-./
3x0123456789:;<=>?
4x@АБСДЭФГЧАСяДж.КЛМНО
5xПВРСТУВВтХИЗ[\]^_
6x`абсгефгчасяджклмно
7xпдгсттывжхуз{|}~ДЕЛ /

Группа 1

Кодовые точки группы LMBCS 128 (80 hex ) – 255 (FF hex ) идентичны соответствующим кодовым точкам в кодовой странице 850 (DOS Latin-1), тогда как кодовые точки 1 (01 hex ) – 127 (7F hex ) определяются в соответствии со следующим списком исключений (соответствующим кодам LMBCS 256–383):

Группа LMBCS 1, нижняя половина [11] [10]
0123456789АБСДЭФ
0xНУЛЕВОЙ
1x§
2x¨~˚^`´«'- [б]' [с]' [с]
3x¨ [д]~ [д]˚ [д]^ [д]` [д]´ [д]nbsp[с][ с]
4xŒœŸ˙ [с]˚ [с] [д][с][с][с][с]Ω [с]
5x
6xяIJфиʼnŀĿ¯ [с]˘ [с]˝ [с]˛ [с]ˇ [с]~ [с] [д]^ [с] [д]
7xĦ [с]ħ [с]« [с]» [с]Ŋ [c]ŋ [с]к [с]Кр [э]
  U+Сопоставлен с символом Unicode для личного пользования

Группа 2

Кодовые точки группы 2 LMBCS от 128 (80 hex ) до 255 (FF hex ) идентичны соответствующим кодовым точкам в кодовой странице 851 (DOS Greek), тогда как кодовые точки от 1 (01 hex ) до 127 (7F hex ) определяются в соответствии со следующим списком исключений: [f]

Группа LMBCS 2, нижняя половина [11]
0123456789АБСДЭФ
0xНУЛЕВОЙͺ΅ΪΫ΄ʼʽ
1x
2x
3x
4x
5x
6xφ
7x
  Сопоставлено с символом Unicode для личного пользования

Группа 6

Кодовые точки группы 6 LMBCS от 128 (80 hex ) до 255 (FF hex ) идентичны соответствующим кодовым точкам в кодовой странице 852 (DOS Latin-2), тогда как кодовые точки от 1 (01 hex ) до 127 (7F hex ) определяются в соответствии со следующим списком исключений: [f]

Группа LMBCS 6, нижняя половина [11]
0123456789АБСДЭФ
0xНУЛЕВОЙаЧЧĊчЭеЭеĜгГгГг
1xЧАСчасЯяЯяЯяĴяКкЯьСņ
2xОоŖŗŜŝŨũŪuŬŭŲųА
3x
4x
5x
6x
7x

Смотрите также

Примечания

  1. ^ Lotus 1-2-3 Release 3.0 для DOS и более новые версии написаны на языке C.
  2. ^ (U+2010), (U+2011), (U+2012), (U+2013)
  3. ^ abcdefghijklmnopqrstu vwxy Согласно документации, эта кодовая точка не поддерживается Lotus 1-2-3 Release 3.1+ для DOS и OS/2 и более ранних версий.
  4. ^ abcdefghi Для совместимости с Lotus 1-2-3 Release 5.0 .
  5. ^ В Unicode не определен глиф для символа валюты «крона» (Krone, также известного как «Kr»), поэтому он указывает на шестнадцатеричное значение F8FB в Зоне частного использования Unicode (PUA).
  6. ^ ab Согласно документации, кодовые точки с 1 по 127 в этой группе не поддерживаются Lotus 1-2-3 Release 3.1+ для DOS и OS/2 и более ранних версий. Эти версии поддерживали только кодовые точки LMBCS с 0 по 511, охватывая только группы 0 и 1.

Ссылки

  1. ^ abcdefghijklm Балабан, Боб (2001). "Многоязычные наборы символов — что они такое, как их использовать" (PDF) . Looseleaf Software, Inc. Архивировано (PDF) из оригинала 2016-11-25 . Получено 2016-11-25 .
  2. ^ abcdefghijklmnopqrstu vwxyz aa ab ac ad ae af ag ah "Приложение A. Схемы кодирования". Архитектура представления символьных данных IBM . IBM (CDRA). Набор многобайтовых символов Lotus (LMBCS). Архивировано из оригинала 2016-11-26 . Получено 2016-11-26 . В целях оптимизации групповой байт опущен в примечаниях для однобайтовых значений между X'20' и X'FF'. Например, LMBCS всегда оптимизируется для группы 0x01, что означает, что любой символ, где первый байт больше 0x1F, имеет неявный групповой байт 0x01.
  3. ^ ab Scherer, Markus; Murray, Brendan (2000-06-02). "Re: MS Excel, Lotus 123 и Unicode". Архивировано из оригинала 2016-12-06 . Получено 2016-12-06 .
  4. ^ «Kapitel 4. Совместимость с другими версиями 1-2-3 Versionen – Zeichensätze» [Глава 4. Совместимость с другими версиями 1-2-3 – Наборы символов]. Lotus 1-2-3 Версия 3.1 Upgrader's Handbuch [ Справочник специалиста по обновлению ] (на немецком языке) (1-е изд.). Кембридж, Массачусетс, США: Lotus Development Corporation . 1989. стр.  4–10 – 4–11 . 302173.
  5. ^ Аб Каменц, Альфред; Фонхёген, Хельмут (1992). Das große Buch zu Lotus 1-2-3 für DOS (на немецком языке) (1-е изд.). Данные Беккер . С.  131–132 , 357–358 . ISBN. 3-89011-375-3.
  6. ^ abcd Lotus – Inside Notes – Архитектура Notes и Domino Server (PDF) . Lotus Development Corporation . 2000. Архивировано (PDF) из оригинала 2016-12-12 . Получено 2016-12-12 . […] Notes использует один набор символов, Lotus Multibyte Character Set (LMBCS), для кодирования всех текстовых данных, используемых внутри его программ. Всякий раз, когда Notes впервые вводит текст, закодированный в наборе символов, отличном от LMBCS, он переводит текст в строку LMBCS, и всякий раз, когда он должен вывести текст в наборе символов, отличном от LMBCS, он переводит внутреннюю строку LMBCS в соответствующий набор символов. Поскольку весь текст внутренне форматируется LMBCS, все операции по обработке текста […] выполняются только одним способом. LMBCS использует до трех байтов в памяти для представления одного текстового символа […]
  7. ^ abcdefghijklmnopqrstu vwxyz aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as Мюррей, Брендан; Снайдер-Грант, Джим, ред. (2016) [2000-02-09]. "ucnv_lmb.c". Международные компоненты для Unicode . International Business Machines (IBM).
  8. ^ Батутис, Эдвард Дж. (2001-11-03). "Re: типы конвертеров". Международные компоненты для Unicode (ICU) . Архивировано из оригинала 2016-12-06 . Получено 2016-12-06 .
  9. ^ abcdefghij "LMBCS" (на японском). 2009-02-03. Архивировано из оригинала 2016-11-26 . Получено 2016-11-26 .[1]
  10. ^ ab "Anhang 2. Der Lotus Multibyte Zeichensatz (LMBCS)" [Приложение 2. Набор многобайтовых символов Lotus (LMBCS)]. Lotus 1-2-3 Version 3.1 Referenzhandbuch [ Справочное руководство по Lotus 1-2-3 Version 3.1 ] (на немецком языке) (1-е изд.). Кембридж, Массачусетс, США: Lotus Development Corporation . 1989. стр. A2-1 – A2-13. 302168.
  11. ^ abc "lmb-excp.ucm". GitHub . 2000-02-10.

Дальнейшее чтение

  • Родился, Гюнтер [на немецком языке] (декабрь 2000 г.) [1990]. «Капитель 2. LOTUS 1-2-3-Формат (WK3)» [Глава 2. Формат Lotus 1-2-3 WK3]. Dateiformate – Eine Referenz – Tabellenkulkulation, Text, Grafik, Multimedia, Sound und Internet [ Форматы файлов – справочник – электронные таблицы, текст, графика, мультимедиа, звук и Интернет ] (PDF) (на немецком языке). Бонн, Германия: Galileo Computing. ISBN 3-934358-83-7. Архивировано (PDF) из оригинала 2016-11-29 . Получено 2016-11-28 .(Включает некоторую информацию о диапазонах систем LMBCS и Lotus.)
  • "Таблицы LMBCS". Руководство пользователя – 123 Выпуск 4 для Windows (факс). Lotus Development . 1995 [1994-01-01]. ГЛАВА: Приложение A Использование набора многобайтовых символов Lotus. Факс 10955 . Получено 06.12.2016 .
  • "Ввод символов LMBCS". Руководство пользователя – 123 Выпуск 4 для Windows (факс). Lotus Development . 1995 [1994-01-01]. ГЛАВА: Приложение A Использование набора многобайтовых символов Lotus. Факс 10954 . Получено 2016-12-06 .
  • Lotus Support. "Notes from Support: SMTP MTA International Character Sets". IBM developerWorks . IBM . Архивировано из оригинала 2016-12-08 . Получено 2016-12-08 .
  • Файлы перевода символов (.CTF) Notes 2.x и файлы Country Language Service (.CLS) Notes 3.0 и выше содержат информацию о переводе LMBCS в другие кодовые страницы [2] [3]
  • Бернтроп-Бос, Ларс (10.07.2014). "Взрыв из прошлого: таблицы LMBCS для Windows, OS/2, Unix и Macintosh". Архивировано из оригинала 26.11.2016 . Получено 26.11.2016 .
Взято с "https://en.wikipedia.org/w/index.php?title=Lotus_Multi-Byte_Character_Set&oldid=1263973440#3"