Лотоса Мульти-Байт Набор символов ( LMBCS ) представляет собой запатентованный мульти-байтовое кодировку символов изначально задуман в 1988 году корпорацией Lotus Development с участием Боба Балабана и другие. [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 (LICS) и ASCII, используемых в более ранних версиях Lotus 1-2-3 и Symphony только для DOS . [5] LMBCS также используется в IBM / лотоса SmartSuite , Notes и Domino , [1] , а также в ряде сторонних продуктов.
LMBCS кодирует символы , необходимые для языков , использующих латинский , [6] арабский , иврит , греческий и кириллический [6] сценарии, то тайский , китайский , японский [6] и корейские системы письма и технические символы.
Кодировки
Технически LMBCS - это кодировка старшего байта, где кодовая точка 00 шестнадцатеричная, а также кодовые точки от 20 шестнадцатеричной (32) до 7F шестнадцатеричной (127) идентичны ASCII [1] (а также LICS). [5]
Код точка 00 шестигранный всегда рассматриваются как NUL характер , чтобы обеспечить максимальную совместимость кода с существующими библиотеками программного обеспечения , связанные с завершающим нулем строкой [1] во многих языках программирования , таких как C . [a] Это применимо даже к кодам UTF-16be, где кодовые слова с шестнадцатеричной формой xx00 отображаются на коды частного использования с шестнадцатеричной формой F6xx во время кодирования, чтобы избежать использования байтов NUL, [7] и управляющие символы с экранированием, где 20 шестнадцатеричных добавляются к управляющим символам C0 (но не C1) после ведущего шестнадцатеричного байта 0F . [7]
Кодовые точки от 01 шестнадцатеричного до 1F шестнадцатеричного , которые служат в качестве управляющих кодов в ASCII, используются как ведущие байты для переключения определения кодовых точек выше 7F шестнадцатеричного числа между несколькими группами кодов (аналогично кодовым страницам ) и в то же время определяют либо одну - или многобайтовый характер для соответствующей кодовой группы. [1]
Например, код группы 1 (с группой байт 01 гекса ) [1] практически идентичен SBCS кодовой странице 850 , в то время как код группы 16 (с группой байт 10 шестигранного ) [1] похож на японский MBCS кодовой страницы 932 . Таким образом, многобайтовые символы могут занимать два или три байта. [7] [6]
В канонической LMBCS каждый символ начинается со своего группового байта. [1] Для уменьшения длины в оптимизированной или сжатой LMBCS группа кодов по умолчанию или код группы оптимизации может быть определен для каждого приложения или процесса (в идеале выбирается в соответствии с наибольшей вероятностью возникновения) [1] и должен быть передан в интерпретирующий код каким-либо образом (например, указав соответствующее имя "LMBCS- n "). [8] Таким образом, для этих символов можно опустить групповой байт. [1] Lotus 1-2-3 извлекает код группы оптимизации из заголовка соответствующего исходного файла, [7] тогда как для Lotus Notes код группы оптимизации всегда равен 01 в шестнадцатеричном формате . [2] [7]
По умолчанию | Группа | Байты | Описание |
---|---|---|---|
N / A | 00 шестнадцатеричный | 1 [7] | NUL |
LMBCS-1 | 01 шестнадцатеричный | 2 [7] | Кодовая страница 850 (DOS Latin-1) [2] [7] |
LMBCS-2 | 02 шестнадцатеричный | 2 [7] | Кодовая страница 851 (греческий DOS) [2] [7] |
LMBCS-3 | 03 шестнадцатеричный | 2 [7] | Кодовая страница 1255 (иврит Windows) [2] [7] |
LMBCS-4 | 04 шестнадцатеричный | 2 [7] | Кодовая страница 1256 (арабский для Windows) [2] [7] |
LMBCS-5 | 05 шестигранник | 2 [7] | Кодовая страница 1251 (Windows Cyrillic) [2] [7] |
LMBCS-6 | 06 шестнадцатеричный | 2 [7] | Кодовая страница 852 (DOS Latin-2) [2] [7] |
N / A | 07 шестнадцатеричный | 1 [7] | БЕЛ [2] |
LMBCS-8 | 08 шестнадцатеричный | 2 [7] | Кодовая страница 1254 (Windows Turkish) [2] [9] [7] |
N / A | 09 шестнадцатеричный | 1 [7] | ВКЛАДКА [2] [9] [7] |
N / A | 0A шестнадцатеричный | 1 [7] | LF [2] [9] [7] |
LMBCS-11 | 0B шестнадцатеричный | 2 [7] | Кодовая страница 874 (тайский) [9] [7] |
(LMBCS-12) | 0C шестнадцатеричный | 2 [7] | Зарезервировано [2] |
N / A | 0D шестнадцатеричный | 1 [7] | CR [2] [9] [7] |
(LMBCS-14) | 0E шестнадцатеричный | 2 [7] | Зарезервировано [2] |
(LMBCS-15) | 0F шестнадцатеричный | 2 [7] | Переназначенные управляющие коды C0 / C1 [7] |
LMBCS-16 | 10 шестигранник | 3 [7] | Кодовая страница 932 / [2] 943 [7] (японский / Shift-JIS) [2] [9] |
LMBCS-17 | 11 шестигранник | 3 [7] | Кодовая страница 949 / [2] 1261 [7] (корейский) [2] [9] |
LMBCS-18 | 12 шестигранник | 3 [7] | Кодовая страница 950 [2] [7] (традиционный китайский / Тайвань / Big5 ) [2] [9] |
LMBCS-19 | 13 шестигранник | 3 [7] | Кодовая страница 936 / [2] 1386 [7] (упрощенный китайский) [2] [9] |
(LMBCS-20) | 14 шестигранник | 3 [7] | UTF-16 ( Юникод ) [2] [3] [7] |
N / A | 15 шестигранник | 3 | Зарезервировано [2] |
N / A | 16 шестигранник | 3 | Зарезервировано [2] |
N / A | 17 шестигранник | 3 | Зарезервировано [2] |
N / A | 18 шестигранник | 3 | Зарезервировано [2] |
N / A | 19 шестигранник | 1 [7] | Диапазон систем Lotus 1-2-3 [9] [7] |
N / A | 1A шестнадцатеричный | 3 | Зарезервировано [2] |
N / A | 1B шестнадцатеричный | 3 | Зарезервировано [2] |
N / A | 1С шестнадцатеричный | 3 | Зарезервировано [2] |
N / A | 1D шестнадцатеричный | 3 | Зарезервировано [2] |
N / A | 1E шестнадцатеричный | 3 | Зарезервировано [2] |
N / A | 1F шестнадцатеричный | 3 | Зарезервировано [2] |
Набор символов
Без префиксного байта кодовые точки с 32 (20 в шестнадцатеричной системе ) до 127 (7F в шестнадцатеричной системе ) интерпретируются следующим образом (что соответствует кодам LMBCS с 32 по 127):
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2_ 32 | SP 0020 | ! 0021 | « 0022 | # 0023 | 0024 долл. США | % 0025 | & 0026 | ' 0027 | ( 0028 | ) 0029 | * 002A | + 002B | , 002C | - 002D | . 002E | / 002F |
3_ 48 | 0 0030 | 1 0031 | 2 0032 | 3 0033 | 4 0034 | 5 0035 | 6 0036 | 7 0037 | 8 0038 | 9 0039 | : 003A | ; 003B | < 003C | = 003D | > 003E | ? 003F |
4_ 64 | @ 0040 | A 0041 | B 0042 | C 0043 | D 0044 | E 0045 | F 0046 | G 0047 | H 0048 | I 0049 | J 004A | K 004B | L 004C | M 004D | № 004E | O 004F |
5_ 80 | P 0050 | Q 0051 | R 0052 | S 0053 | Т 0054 | U 0055 | V 0056 | W 0057 | X 0058 | Y 0059 | Z 005A | [ 005B | \ 005C | ] 005D | ^ 005E | _ 005F |
6_ 96 | ` 0060 | а 0061 | b 0062 | c 0063 | d 0064 | e 0065 | f 0066 | г 0067 | h 0068 | я 0069 | j 006A | k 006B | l 006C | м 006D | № 006E | o 006F |
7_ 112 | p 0070 | q 0071 | r 0072 | s 0073 | t 0074 | u 0075 | v 0076 | w 0077 | х 0078 | y 0079 | z 007A | { 007B | | 007C | } 007D | ~ 007E | DEL / ⌂ 007F / 2302 |
Письмо Число Пунктуация Символ Другой Неопределенный
Группа 1
Кодовые точки группы 1 LMBCS от 128 (80 в шестнадцатеричном формате ) до 255 (FF в шестнадцатеричном формате ) идентичны соответствующим кодовым точкам на кодовой странице 850 (DOS Latin-1), тогда как кодовые точки от 1 (01 в шестнадцатеричном формате ) до 127 (7F в шестнадцатеричном формате ) определены в соответствии со следующим списком исключений (соответствует кодам LMBCS с 256 по 383):
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ 0 | NUL 0000 | ☺ 263A | ☻ 263B | ♥ 2665 | ♦ 2666 | ♣ 2663 | ♠ 2660 | • 2022 г. | ◘ 25D8 | ○ 25CB | ◙ 25D9 | 2642 ♂ | 2640 ♀ | ♪ 266A | ♫ 266B | ☼ 263C |
1_ 16 | ► 25БА | ◄ 25C4 | ↕ 2195 | ‼ 203C | ¶ 00B6 | § 00A7 | ▬ 25AC | ↨ 21A8 | ↑ 2191 | ↓ 2193 | → 2192 | ← 2190 | ∟ 221F | ↔ 2194 | ▲ 25B2 | ▼ 25 г. до н.э. |
2_ 32 | ¨ 00A8 | ~ 007E | ˚ 02DA | ^ 005E | ` 0060 | ´ 00B4 | « 201C | ' 0027 | … 2026 г. | - [b] 2013 г. | - 2014 г. | ' [c] 2018 | ' [c] 2019 г. | ‹ 2039 | › 203A | |
3_ 48 | ¨ [d] 00A8 | ~ [d] 007E | ˚ [d] 02DA | ^ [d] 005E | ` [d] 0060 | ´ [d] 00B4 | „ 201E | ‚ 201A | ” 201D | ‗ 2017 | nbsp [c] 00A0 | [c] FFFD | ||||
4_ 64 | Œ 0152 | œ 0153 | Ÿ 0178 | ˙ [c] 02D9 | ˚ [c] [d] 02DA | ╞ 255E | ╟ 255F | ▌ 258C | 2590 вон | ◊ [c] 25CA | ⌘ [c] 2318 | [c] F8FF | [c] F8FE | Ом [с] 2126 | ||
5_ 80 | ╨ 2568 | ╤ 2564 | ╥ 2565 | ╙ 2559 | ╘ 2558 | ╒ 2552 | ╓ 2553 | ╫ 256 млрд | ╪ 256А | ╡ 2561 | ╢ 2562 | ╖ 2556 | ╕ 2555 | ╜ 255C | ╛ 255B | ╧ 2567 |
6_ 96 | ij 0133 | IJ 0132 | фи FB01 | fl FB02 | ʼn 0149 | ŀ 0140 | Ŀ 013F | ¯ [c] 00AF | ˘ [c] 02D8 | ˝ [c] 02DD | ˛ [c] 02DB | [С] 02C7 | ~ [c] [d] 007E | ^ [c] [d] 005E | ||
7_ 112 | † 2020 г. | ‡ 2021 г. | Ħ [c] 0126 | ħ [c] 0127 | Ŧ [c] 0166 | ŧ [c] 0167 | ™ 2122 | ℓ 2113 | Ŋ [c] 014A | ŋ [c] 014B | ĸ [c] 0138 | Kr [e] | ⌐ 2310 | ₤ 20A4 | ₧ 20A7 |
Письмо Число Пунктуация Символ Другой Неопределенный Сопоставляется с символом частного использования Unicode
2 группа
Кодовые точки группы 2 LMBCS от 128 (80 в шестнадцатеричной системе ) до 255 (FF в шестнадцатеричной системе ) идентичны соответствующим кодовым точкам на кодовой странице 851 (греческий язык DOS), тогда как кодовые точки с 1 (01 в шестнадцатеричной системе ) до 127 (7F в шестнадцатеричной системе ) определены в соответствии с следующий список исключений: [f]
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ 0 | NUL 0000 | 037A | 0385 | Ϊ 03AA | Ϋ 03AB | - 2015 г. | 0384 | ʼ 02BC | ʽ 02BD | ‾ 203E | F862 | F863 | ||||
1_ 16 | F864 | F865 | ⇕ 21D5 | ⅞ 215E | ⅝ 215D | ⅜ 215C | ⅛ 215B | F867 | ⇑ 21D1 | ⇓ 21D3 | ⇒ 21D2. | ⇐ 21D0 | F868 | ⇔ 21D4 | F869 | F89F |
2_ 32 | F89E | F89D | F89C | F89B | F89A | F899 | F898 | F897 | F896 | F895 | F894 | F893 | F892 | F891 | F890 | F88F |
3_ 48 | F88E | F88D | F88C | F88B | F88A | F889 | F888 | F887 | F886 | F885 | F884 | F883 | F882 | F881 | F880 | F866 |
4_ 64 | 2220 ∠ | ∇ 2207 | F87F | F87E | F87D | F87C | F87B | F87A | F879 | F878 | F877 | F876 | F875 | F874 | F873 | F872 |
5_ 80 | ∂ 2202 | ℵ 2135 | ℑ 2111 | ℜ 211C | F871 | F870 | F86F | F86E | F86D | F86C | F86B | ∋ 220В | ∈ 2208 | 2209 вон | ⊆ 2286 | ⊇ 2287 |
6_ 96 | ⊗ 2297 | 2295 ⊕ | ✓ 2713 | ⋀ 22C0 | 2201 ∁ | ∫ 222B | 2200 ∀ | ∃ 2203 | F86A | ′ 2032 г. | ″ 2033 г. | ∞ 221E | ∝ 221D | φ 03C6 | ∪ 222A | 2229 ∩ |
7_ 112 | ≡ 2261 | ≅ 2245 | ≥ 2265 | ≤ 2264 | ⌠ 2320 | ⌡ 2321 | ≠ 2260 | ≈ 2248 | ⁄ 2044 | ∙ 2219 | ‰ 2030 г. | √ 221А | ⁿ 207F | ∅ 2205 | ⊂ 2282 | 2283 ⊃ |
Письмо Число Пунктуация Символ Другой Неопределенный Сопоставляется с символом частного использования Unicode
6 группа
Кодовые точки группы 6 LMBCS от 128 (80 шестнадцатеричное ) до 255 ( шестнадцатеричное FF ) идентичны соответствующим кодовым точкам на кодовой странице 852 (DOS Latin-2), тогда как кодовые точки от 1 (01 шестнадцатеричное ) до 127 (7F шестнадцатеричное ) определены согласно следующему списку исключений: [f]
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ 0 | NUL 0000 | ā 0101 | Ĉ 0108 | ĉ 0109 | Ċ 010A | ċ 010B | Ē 0112 | ē 0113 | Ė 0116 | ė 0117 | Ĝ 011C | ĝ 011D | Ġ 0120 | ġ 0121 | Ģ 0122 | ģ 0123 |
1_ 16 | Ĥ 0124 | ĥ 0125 | Ĩ 0128 | ĩ 0129 | Ī 012A | ī 012B | Į 012E | į 012F | Ĵ 0134 | ĵ 0135 | Ķ 0136 | ķ 0137 | Ļ 013B | ļ 013C | Ņ 0145 | ņ 0146 |
2_ 32 | Ō 014C | ō 014D | Ŗ 0156 | ŗ 0157 | Ŝ 015C | ŝ 015D | ˙U 0168 | ũ 0169 | Ū 016A | ū 016B | Ŭ 016C | ŭ 016D | Ų 0172 | ų 0173 | Ā 0100 | |
3_ 48 | ||||||||||||||||
4_ 64 | ||||||||||||||||
5_ 80 | ||||||||||||||||
6_ 96 | ||||||||||||||||
7_ 112 |
Письмо Число Пунктуация Символ Другой Неопределенный
Смотрите также
- Составьте ключевую последовательность
- ГБ 18030
- Стандартная схема сжатия для Unicode (SCSU)
- Символ (шрифт)
- Стандарт кодов символов Xerox (XCCS)
Заметки
- ^ Lotus 1-2-3 Release 3.0 для DOS и более новых версий написаны на C .
- ^ - (U + 2010), - (U + 2011), - (U + 2012), - (U + 2013)
- ^ a b c d e f g h i j k l m n o p q r s t u v w x y Согласно документации эта кодовая точка не поддерживается Lotus 1-2-3 Release 3.1+ для DOS и OS / 2 и ранее.
- ^ a b c d e f g h i Для совместимости с Lotus 1-2-3 Release 5.0 .
- ^ Unicode не определяет глиф длясимвола валюты короны (Krone aka «Kr»), поэтому он указывает на шестнадцатеричный код F8FBв области частного использования Unicode(PUA).
- ^ a b Согласно документации, кодовые точки с 1 по 127 в этой группе не поддерживаются Lotus 1-2-3 Release 3.1+ для DOS и OS / 2 и более ранних версий . Эти версии поддерживали только кодовые точки LMBCS от 0 до 511, охватывая только группы 0 и 1.
Рекомендации
- ^ Б с д е е г ч я J к л м Балабан, Боб (2001). «Многоязычные наборы символов - что это такое и как их использовать» (PDF) . Looseleaf Software, Inc. Архивировано (PDF) из оригинала 25 ноября 2016 года . Проверено 25 ноября 2016 .
- ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah «Приложение А. Схемы кодирования» . Архитектура представления символьных данных IBM . IBM (CDRA). Многобайтовый набор символов Lotus (LMBCS). Архивировано 26 ноября 2016 года . Проверено 26 ноября 2016 .
В целях оптимизации групповой байт опускается в примечаниях для однобайтовых значений от X'20 'до X'FF'. Например, LMBCS всегда оптимизирован для группы 0x01, что означает, что любой символ, первый байт которого больше 0x1F, имеет неявный групповой байт 0x01.
- ^ а б Шерер, Маркус; Мюррей, Брендан (2000-06-02). «Re: MS Excel, Lotus 123 и Unicode» . Архивировано 6 декабря 2016 года . Проверено 6 декабря 2016 .
- ^ "Kapitel 4. Kompatibilität mit anderen 1-2-3 Versionen - Zeichensätze" [Глава 4. Совместимость с другими версиями 1-2-3 - Наборы символов]. Lotus 1-2-3 Version 3.1 Upgrader's Handbuch [ Руководство обновителя ] (на немецком языке) (1-е изд.). Кембридж, Массачусетс, США: Lotus Development Corporation . 1989. С. 4-10–4-11. 302173.
- ^ а б Каменц, Альфред; Фонхеген, Хельмут (1992). Das große Buch zu Lotus 1-2-3 für DOS (на немецком языке) (1 изд.). Данные Беккер . С. 131–132, 357–358. ISBN 3-89011-375-3.
- ^ а б в г Lotus - Inside Notes - Архитектура Notes и сервер Domino (PDF) . Lotus Development Corporation . 2000. Архивировано (PDF) из оригинала 12 декабря 2016 года . Проверено 12 декабря 2016 .
[…] Notes использует единый набор символов, многобайтовый набор символов Lotus (LMBCS), для кодирования всех текстовых данных, используемых внутри его программ. Когда Notes сначала вводит текст, закодированный в наборе символов, отличном от LMBCS, он переводит текст в строку LMBCS, и всякий раз, когда он должен выводить текст в наборе символов, отличном от LMBCS, он переводит внутреннюю строку LMBCS в соответствующий набор символов. Поскольку весь текст внутренне отформатирован LMBCS, все операции обработки текста […] выполняются только одним способом. LMBCS использует до трех байтов в памяти для представления одного текстового символа […]
- ^ a b c d e f g h i j k l m n o p q r s t u v w x y z 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 . Международные бизнес-машины (IBM).
- ^ Батутис, Эдвард Дж. (2001-11-03). «Re: типы преобразователей» . Международные компоненты для Unicode (ICU) . Архивировано 6 декабря 2016 года . Проверено 6 декабря 2016 .
- ^ Б с д е е г ч я J «LMBCS» (на японском). 2009-02-03. Архивировано 26 ноября 2016 года . Проверено 26 ноября 2016 .[1]
- ^ а б "Anhang 2. Многобайтовый лотос Zeichensatz (LMBCS)" [Приложение 2. Многобайтовый набор символов Lotus (LMBCS)]. Lotus 1-2-3 Version 3.1 Referenzhandbuch [ Справочное руководство по Lotus 1-2-3 версии 3.1 ] (на немецком языке) (1-е изд.). Кембридж, Массачусетс, США: Lotus Development Corporation . 1989. pp. A2-1 – A2-13. 302168.
- ^ а б в "lmb-excp.ucm" . 2000-02-10.
дальнейшее чтение
- Родился, Гюнтер (декабрь 2000 г.) [1990]. «Капитель 2. LOTUS 1-2-3-Format (WK3)» [Глава 2. Формат Lotus 1-2-3 WK3]. Dateiformate - Eine Referenz - Tabellenkalkulation, Text, Grafik, Multimedia, Sound und Internet [ Форматы файлов - справочные материалы - электронные таблицы, текст, графика, мультимедиа, звук и Интернет ] (PDF) (на немецком языке). Бонн, Германия: Galileo Computing . ISBN 3-934358-83-7. Архивировано (PDF) из оригинала 29 ноября 2016 года . Проверено 28 ноября 2016 . (Включает некоторую информацию о диапазонах систем LMBCS и Lotus.)
- «Таблицы LMBCS» . Руководство пользователя - 123 выпуск 4 для Windows (факс). Лотус Девелопмент . 1995 [1994-01-01]. ГЛАВА: Приложение A Использование многобайтового набора символов Lotus. Факс 10955 . Проверено 6 декабря 2016 .
- «Ввод символов LMBCS» . Руководство пользователя - 123 выпуск 4 для Windows (факс). Лотус Девелопмент . 1995 [1994-01-01]. ГЛАВА: Приложение A Использование многобайтового набора символов Lotus. Факс 10954 . Проверено 6 декабря 2016 .
- Поддержка Lotus. «Примечания от службы поддержки: Международные наборы символов SMTP MTA» . IBM developerWorks . IBM . Архивировано 8 декабря 2016 года . Проверено 8 декабря 2016 .
- Файлы перевода символов (.CTF) от Notes 2.x и файлы Country Language Service (.CLS) от Notes 3.0 и выше содержат информацию о переводе LMBCS в другие кодовые страницы [2] [3]
Внешние ссылки
- Бернтроп-Бос, Ларс (10.07.2014). «Взрыв прошлого: таблицы LMBCS для Windows, OS / 2, Unix и Macintosh» . Архивировано 26 ноября 2016 года . Проверено 26 ноября 2016 .