Набор многобайтовых символов Lotus - Lotus Multi-Byte Character Set

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

С коммерческой точки зрения LMBCS был впервые представлен как набор символов по умолчанию для Lotus 1-2-3, выпуск 3 за ДОС в марте 1989 г.[1][4] и Lotus 1-2-3 / G Выпуск 1 за OS / 2[1] в 1990 году замена 8-битной Набор символов Lotus International (LICS) и ASCII использовался в более ранних версиях Lotus 1-2-3 и только для DOS. Симфония.[5] LMBCS также используется в IBM /Лотос SmartSuite, Примечания и Домино,[1] а также в ряде сторонних продуктов.

LMBCS кодирует символы, необходимые для языков, используя латинский,[6] арабский, иврит, Греческий и Кириллица[6] скрипты, Тайский, Китайский, Японский[6] и Корейский системы письма и технические символы.

Кодировки

Технически LMBCS - это стартовый байт кодировка, где кодовая точка 00шестнадцатеричный а также кодовые точки 20шестнадцатеричный (32) до 7Fшестнадцатеричный (127) идентичны ASCII[1] (как и в LICS).[5]

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

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

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

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

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

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

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

Однобайтовые коды (ASCII /ISO-646-US[10])
_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
А
0041
B
0042
C
0043
D
0044
E
0045
F
0046
г
0047
ЧАС
0048
я
0049
J
004A
K
004B
L
004C
M
004D
N
004E
О
004F
5_
80
п
0050
Q
0051
р
0052
S
0053
Т
0054
U
0055
V
0056
W
0057
Икс
0058
Y
0059
Z
005A
[
005B
\
005C
]
005D
^
005E
_
005F
6_
96
`
0060
а
0061
б
0062
c
0063
d
0064
е
0065
ж
0066
г
0067
час
0068
я
0069
j
006A
k
006B
л
006C
м
006D
п
006E
о
006F
7_
112
п
0070
q
0071
р
0072
s
0073
т
0074
ты
0075
v
0076
ш
0077
Икс
0078
у
0079
z
007A
{
007B
|
007C
}
007D
~
007E
DEL /
007F / 2302

  Письмо  Число  Пунктуация  Символ  Другой  Неопределенный

Группа 1

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

LMBCS Group 1, нижняя половина[11][10]
_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

25BA

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
Ω[c]
2126
5_
80

2568

2564

2565

2559

2558

2552

2553

256B

256A

2561

2562

2556

2555

255C

255B

2567
6_
96
ij
0133
IJ
0132
ф
FB01

FB02
ʼn
0149
ŀ
0140
Ŀ
013F
¯[c]
00AF
˘[c]
02D8
˝[c]
02DD
˛[c]
02ДБ
ˇ[c]
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

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

LMBCS Group 2, нижняя половина[11]
_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

220B

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

221A

207F

2205

2282

2283

  Письмо  Число  Пунктуация  Символ  Другой  Неопределенный  Сопоставлен с Unicode персонаж частного использования

6 группа

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

LMBCS Group 6, нижняя половина[11]
_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
Ũ
0168
ũ
0169
Ū
016A
ū
016B
Ŭ
016C
ŭ
016D
Ų
0172
ų
0173
Ā
0100
3_
48
4_
64
5_
80
6_
96
7_
112

  Письмо  Число  Пунктуация  Символ  Другой  Неопределенный

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

Примечания

  1. ^ Lotus 1-2-3, выпуск 3.0 за ДОС и более новые версии написаны на C.
  2. ^ (U + 2010), (U + 2011), (U + 2012), (U + 2013)
  3. ^ а б c d е ж г час я j k л м п о п q р s т ты v ш Икс у Согласно документации, этот код не поддерживается Lotus 1-2-3, выпуск 3.1+ для DOS и OS / 2 и ранее.
  4. ^ а б c d е ж г час я Для совместимости с Lotus 1-2-3, выпуск 5.0.
  5. ^ Unicode не определяет глиф для валюта короны символ (Krone aka "Kr"), следовательно, это указывает на F8FBшестнадцатеричный в Юникоде Зона частного использования (PUA).
  6. ^ а б Согласно документации, коды с 1 по 127 в этой группе не поддерживаются Lotus 1-2-3, выпуск 3.1+ для DOS и OS / 2 и ранее. Эти версии поддерживали только кодовые точки LMBCS от 0 до 511, охватывая только группы 0 и 1.

использованная литература

  1. ^ а б c d е ж г час я j k л м Балабан, Боб (2001). "Многоязычные наборы символов - что это такое и как их использовать" (PDF). Looseleaf Software, Inc. В архиве (PDF) из оригинала от 25.11.2016. Получено 2016-11-25.
  2. ^ а б c d е ж г час я j k л м п о п q р s т ты v ш Икс у z аа ab ac объявление ае аф аг ах «Приложение А. Схемы кодирования». IBM Архитектура представления символьных данных. IBM (CDRA). Многобайтовый набор символов Lotus (LMBCS). В архиве из оригинала от 26.11.2016. Получено 2016-11-26. В целях оптимизации групповой байт в Примечания для однобайтовых значений от X'20 'до X'FF'. Например, LMBCS всегда оптимизирован для группы 0x01, что означает, что любой символ, первый байт которого больше 0x1F, имеет неявный групповой байт 0x01.
  3. ^ а б Шерер, Маркус; Мюррей, Брендан (2 июня 2000). "Re: MS Excel, Lotus 123 и Unicode". В архиве из оригинала от 06.12.2016. Получено 2016-12-06.
  4. ^ «Kapitel 4. Kompatibilität mit anderen 1-2-3 Versionen - Zeichensätze» [Глава 4. Совместимость с другими версиями 1-2-3 - Наборы символов]. Руководство по обновлению Lotus 1-2-3 до версии 3.1 [Справочник обновителя] (на немецком языке) (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. ^ а б c d Lotus - Inside Notes - Архитектура Notes и сервера Domino (PDF). Lotus Development Corporation. 2000. В архиве (PDF) из оригинала от 12.12.2016. Получено 2016-12-12. […] Notes использует единый набор символов, многобайтовый набор символов Lotus (LMBCS), для кодирования всех текстовых данных, используемых внутри его программ. Каждый раз, когда Notes сначала вводит текст, закодированный в наборе символов, отличном от LMBCS, он переводит текст в строку LMBCS, а всякий раз, когда он должен выводить текст в наборе символов, отличном от LMBCS, он переводит внутреннюю строку LMBCS в соответствующий набор символов. Поскольку весь текст внутренне отформатирован LMBCS, все операции обработки текста […] выполняются только одним способом. LMBCS использует до трех байтов в памяти для представления одного текстового символа […]
  7. ^ а б c d е ж г час я j k л м п о п q р s т ты v ш Икс у z аа ab ac объявление ае аф аг ах ай эй ак аль я ан ао ap водный ар так как Мюррей, Брендан; Снайдер-Грант, Джим, ред. (2016) [2000-02-09]. "ucnv_lmb.c". Международные компоненты для Unicode. Международные Бизнес Машины (IBM).
  8. ^ Батутис, Эдвард Дж. (2001-11-03). «Re: типы преобразователей». Международные компоненты для Unicode (ICU). В архиве из оригинала от 06.12.2016. Получено 2016-12-06.
  9. ^ а б c d е ж г час я j «LMBCS» (по-японски). 2009-02-03. В архиве из оригинала от 26.11.2016. Получено 2016-11-26.[1]
  10. ^ а б "Anhang 2. Многобайтовый лотос Zeichensatz (LMBCS)" [Приложение 2. Многобайтовый набор символов Lotus (LMBCS)]. Lotus 1-2-3 Версия 3.1 Справочник [Справочное руководство Lotus 1-2-3 версии 3.1] (на немецком языке) (1-е изд.). Кембридж, Массачусетс, США: Lotus Development Corporation. 1989. pp. A2-1 – A2-13. 302168.
  11. ^ а б c "lmb-excp.ucm". 2000-02-10.

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

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