stringtranslate.com

Многобайтовый набор символов 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]

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

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

Группа 1

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

  U+Сопоставлен с символом Unicode для личного пользования

Группа 2

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

  Сопоставлено с символом Unicode для личного пользования

Группа 6

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

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

Примечания

  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 для 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 Reference Manual ] (на немецком языке) (1-е изд.). Кембридж, Массачусетс, США: Lotus Development Corporation . 1989. стр. A2-1–A2-13. 302168.
  11. ^ abc "lmb-excp.ucm". GitHub . 2000-02-10.

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

Внешние ссылки