Vícebajtová znaková sada Lotus - Lotus Multi-Byte Character Set
The Vícebajtová znaková sada Lotus (LMBCS) je vlastnická společnost vícebajtový Kódování znaků původně koncipován v roce 1988 v Lotus Development Corporation se vstupem od Boba Balabana a dalších.[1] LMBCS, vytvořený přibližně ve stejnou dobu a zabývající se některými stejnými problémy, lze považovat za paralelní vývoj a možnou alternativu k Unicode.[1] Pro maximální kompatibilitu jsou zahrnuta novější vydání LMBCS UTF-16 jako podmnožina.[2][3]
Komerčně byl LMBCS poprvé představen jako výchozí znaková sada Lotus 1-2-3, vydání 3 pro DOS v březnu 1989[1][4] a Lotus 1-2-3 / G vydání 1 pro OS / 2[1] v roce 1990 nahradil 8-bit Mezinárodní znaková sada Lotus (LICS) a ASCII používaný v dřívějších verzích systému Lotus 1-2-3 a pouze pro DOS Symfonie.[5] LMBCS se také používá v IBM /Lotus SmartSuite, Poznámky a Domino,[1] stejně jako v řadě produktů třetích stran.
LMBCS kóduje znaky požadované pro jazyky pomocí latinský,[6] arabština, hebrejština, řecký a cyrilice[6] skripty, Thai, čínština, japonský[6] a korejština systémy psaní a technické symboly.
Kódování
Technicky je LMBCS a lead-byte kódování, kde kódový bod 00hex stejně jako kódové body 20hex (32) až 7Fhex (127) jsou totožné s ASCII[1] (stejně jako LICS).[5]
Kódový bod 00hex se vždy považuje za Znak NUL zajistit maximální kompatibilitu kódu s existujícími softwarovými knihovnami, se kterými se pracuje řetězce zakončené nulou[1] v mnoha programovacích jazycích, jako je C.[A] To platí i pro kódy UTF-16be, kde jsou kódová slova ve tvaru xx00hex jsou mapovány na kódy pro soukromé použití s formulářem F6xxhex během kódování, aby se zabránilo použití NUL bajtů,[7] a uniklé řídicí znaky, kde 20hex je přidán k řídicím znakům C0 (ale ne C1) za 0Fhex hlavní bajt.[7]
Kódové body 01hex až 1Fhex, které slouží jako kontrolní kódy v ASCII, se používají jako vedoucí bajty k přepnutí definice kódových bodů nad 7Fhex mezi několika kódové skupiny (podobný kódové stránky ) a zároveň určit buď jednobajtovou nebo vícebajtovou povahu pro příslušnou skupinu kódů.[1]
Například kódová skupina 1 (se skupinovým bajtem 01hex)[1] je téměř totožný s SBCS kódová stránka 850, zatímco skupina kódů 16 (se skupinovým bajtem 10hex)[1] je podobný Japonci MBCS kódová stránka 932. Vícebajtové znaky tak mohou zabírat dva nebo tři bajty.[7][6]
v kanonické LMBCS, každý znak začíná svým skupinovým bajtem.[1]Chcete-li snížit délku, v optimalizováno nebo komprimované LMBCS A výchozí skupina kódů nebo kód optimalizační skupiny lze definovat na základě aplikace nebo procesu (ideálně zvoleno podle nejvyšší pravděpodobnosti výskytu)[1] a musí být nějakým způsobem sděleny tlumočnickému kódu (např. uvedením odpovídající „LMBCS-n" název).[8] Tím lze u těchto znaků vynechat skupinový bajt.[1] Lotus 1-2-3 načte kód optimalizační skupiny z hlavičky souboru odpovídajícího zdrojového souboru,[7] zatímco pro Lotus Notes je kód optimalizační skupiny opraven na vždy 01hex.[2][7]
Výchozí | Skupina | Bajty | Popis |
---|---|---|---|
N / A | 00hex | 1[7] | NUL |
LMBCS-1 | 01hex | 2[7] | Kódová stránka 850 (DOS Latin-1)[2][7] |
LMBCS-2 | 02hex | 2[7] | Kódová stránka 851 (DOS řečtina)[2][7] |
LMBCS-3 | 03hex | 2[7] | Kódová stránka 1255 (Windows hebrejsky)[2][7] |
LMBCS-4 | 04hex | 2[7] | Kódová stránka 1256 (Windows arabština)[2][7] |
LMBCS-5 | 05hex | 2[7] | Kódová stránka 1251 (Windows cyrilice)[2][7] |
LMBCS-6 | 06hex | 2[7] | Kódová stránka 852 (DOS Latin-2)[2][7] |
N / A | 07hex | 1[7] | BEL[2] |
LMBCS-8 | 08hex | 2[7] | Kódová stránka 1254 (Windows turečtina)[2][9][7] |
N / A | 09hex | 1[7] | TAB[2][9][7] |
N / A | 0Ahex | 1[7] | LF[2][9][7] |
LMBCS-11 | 0Bhex | 2[7] | Kódová stránka 874 (Thajština)[9][7] |
(LMBCS-12) | 0Chex | 2[7] | Rezervováno[2] |
N / A | 0Dhex | 1[7] | ČR[2][9][7] |
(LMBCS-14) | 0Ehex | 2[7] | Rezervováno[2] |
(LMBCS-15) | 0Fhex | 2[7] | Přemapované řídicí kódy C0 / C1[7] |
LMBCS-16 | 10hex | 3[7] | Kódová stránka 932 /[2]943[7] (Japonština / Shift-JIS)[2][9] |
LMBCS-17 | 11hex | 3[7] | Kódová stránka 949 /[2]1261[7] (Korejština)[2][9] |
LMBCS-18 | 12hex | 3[7] | Kódová stránka 950[2][7] (Tradiční čínština / Tchaj-wan / Big5 )[2][9] |
LMBCS-19 | 13hex | 3[7] | Kódová stránka 936 /[2]1386[7] (Zjednodušená čínština)[2][9] |
(LMBCS-20) | 14hex | 3[7] | UTF-16 (Unicode )[2][3][7] |
N / A | 15hex | 3 | Rezervováno[2] |
N / A | 16hex | 3 | Rezervováno[2] |
N / A | 17hex | 3 | Rezervováno[2] |
N / A | 18hex | 3 | Rezervováno[2] |
N / A | 19hex | 1[7] | Lotus 1-2-3 rozsah systému[9][7] |
N / A | 1Ahex | 3 | Rezervováno[2] |
N / A | 1Bhex | 3 | Rezervováno[2] |
N / A | 1Chex | 3 | Rezervováno[2] |
N / A | 1Dhex | 3 | Rezervováno[2] |
N / A | 1Ehex | 3 | Rezervováno[2] |
N / A | 1Fhex | 3 | Rezervováno[2] |
Znaková sada
Bez bajtu předpony kód ukazuje 32 (20hex) až 127 (7Fhex) jsou interpretovány následovně (odpovídající kódům LMBCS 32 až 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 | Já 0049 | J 004A | K. 004B | L 004C | M 004D | N 004E | Ó 004F |
5_ 80 | P 0050 | Q 0051 | R 0052 | S 0053 | T 0054 | U 0055 | PROTI 0056 | Ž 0057 | X 0058 | Y 0059 | Z 005A | [ 005B | \ 005C | ] 005D | ^ 005E | _ 005F |
6_ 96 | ` 0060 | A 0061 | b 0062 | C 0063 | d 0064 | E 0065 | F 0066 | G 0067 | h 0068 | i 0069 | j 006A | k 006B | l 006C | m 006D | n 006E | Ó 006F |
7_ 112 | str 0070 | q 0071 | r 0072 | s 0073 | t 0074 | u 0075 | proti 0076 | w 0077 | X 0078 | y 0079 | z 007A | { 007B | | 007C | } 007D | ~ 007E | DEL /⌂ 007F / 2302 |
Dopis Číslo Interpunkce Symbol jiný Nedefinováno
Skupina 1
LMBCS skupina 1 kódové body 128 (80hex) na 255 (FF.)hex) jsou shodné s odpovídajícími body kódu v kódová stránka 850 (DOS Latin-1), zatímco kódové body 1 (01hex) až 127 (7Fhex) jsou definovány podle následujícího seznamu výjimek (odpovídajících kódům LMBCS 256 až 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 | ► 25BA | ◄ 25C4 | ↕ 2195 | ‼ 203C | ¶ 00B6 | § 00A7 | ▬ 25AC | ↨ 21A8 | ↑ 2191 | ↓ 2193 | → 2192 | ← 2190 | ∟ 221F | ↔ 2194 | ▲ 25B2 | ▼ 25BC |
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 | ╜ 255 ° C | ╛ 255B | ╧ 2567 |
6_ 96 | ij 0133 | IJ 0132 | fi FB01 | fl FB02 | ʼn 0149 | ŀ 0140 | Ŀ 013F | ¯[C] 00AF | ˘[C] 02D8 | ˝[C] 02DD | ˛[C] 02DB | ˇ[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 |
Dopis Číslo Interpunkce Symbol jiný Nedefinováno Mapováno na Unicode znak pro soukromé použití
Skupina 2
LMBCS skupina 2 kódové body 128 (80hex) až 255 (FF.)hex) jsou shodné s odpovídajícími body kódu v kódová stránka 851 (DOS řečtina), zatímco kódové body 1 (01hex) až 127 (7Fhex) jsou definovány podle následujícího seznamu výjimek:[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 | ∋ 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 |
Dopis Číslo Interpunkce Symbol jiný Nedefinováno Mapováno na Unicode znak pro soukromé použití
Skupina 6
Skupina LMBCS 6 kódových bodů 128 (80hex) až 255 (FF.)hex) jsou shodné s odpovídajícími body kódu v kódová stránka 852 (DOS Latin-2), zatímco kódové body 1 (01hex) až 127 (7Fhex) jsou definovány podle následujícího seznamu výjimek:[F]
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ 0 | NUL 0000 | A 0101 | C 0108 | C 0109 | C 010A | C 010B | E 0112 | E 0113 | E 0116 | E 0117 | G 011C | G 011D | G 0120 | G 0121 | G 0122 | G 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 | A 0100 | |
3_ 48 | ||||||||||||||||
4_ 64 | ||||||||||||||||
5_ 80 | ||||||||||||||||
6_ 96 | ||||||||||||||||
7_ 112 |
Dopis Číslo Interpunkce Symbol jiný Nedefinováno
Viz také
Poznámky
- ^ Lotus 1-2-3 verze 3.0 pro DOS a novější verze jsou napsány v C.
- ^ ‐ (U + 2010), ‑ (U + 2011), ‒ (U + 2012), – (U + 2013)
- ^ A b C d E F G h i j k l m n Ó str q r s t u proti w X y Podle dokumentace tento bod kódu není podporován Lotus 1-2-3 verze 3.1+ pro DOS a OS / 2 a starší.
- ^ A b C d E F G h i Pro kompatibilitu s Lotus 1-2-3 Release 5.0.
- ^ Unicode nedefinuje glyf pro měna koruny symbol (Krone aka "Kr"), proto to ukazuje na F8FBhex v Unicode Oblast pro soukromé použití (PUA).
- ^ A b Podle kódu dokumentace nejsou body 1 až 127 v této skupině podporovány Lotus 1-2-3 verze 3.1+ pro DOS a OS / 2 a starší. Tyto verze podporovaly pouze body kódu LMBCS 0 až 511, pokrývající pouze skupinu 0 a 1.
Reference
- ^ A b C d E F G h i j k l m Balaban, Bob (2001). „Vícejazyčné znakové sady - co to je, jak je používat“ (PDF). Looseleaf Software, Inc. Archivováno (PDF) od originálu dne 2016-11-25. Citováno 2016-11-25.
- ^ A b C d E F G h i j k l m n Ó str q r s t u proti w X y z aa ab ac inzerát ae af ag ah „Příloha A. Schémata kódování“. IBM Architektura reprezentace dat znaků. IBM (CDRA). Vícebajtová znaková sada Lotus (LMBCS). Archivováno od originálu 26. 11. 2016. Citováno 2016-11-26.
Pro účely optimalizace je skupinový bajt vynechán Poznámky pro jednobajtové hodnoty mezi X'20 'a X'FF'. Například LMBCS je vždy optimalizován na skupinu 0x01, což znamená, že jakýkoli znak, kde je první bajt větší než 0x1F, má implicitní skupinový bajt 0x01.
- ^ A b Scherer, Markus; Murray, Brendan (02.06.2000). „Re: MS Excel, Lotus 123 & Unicode“. Archivováno od originálu 2016-12-06. Citováno 2016-12-06.
- ^ "Kapitel 4. Kompatibilität mit anderen 1-2-3 Versionen - Zeichensätze" [Kapitola 4. Kompatibilita s jinými verzemi 1-2-3 - znakové sady]. Handbuch upgradovacího nástroje Lotus 1-2-3 verze 3.1 [Příručka pro upgrade] (v němčině) (1. vyd.). Cambridge, MA, USA: Lotus Development Corporation. 1989. s. 4-10–4-11. 302173.
- ^ A b Kamenz, Alfred; Vonhoegen, Helmut (1992). Das große Buch zu Lotus 1-2-3 für DOS (v němčině) (1. vyd.). Data Becker. str. 131–132, 357–358. ISBN 3-89011-375-3.
- ^ A b C d Lotus - Inside Notes - Architektura Notes a Domino Server (PDF). Lotus Development Corporation. 2000. Archivováno (PDF) od originálu 2016-12-12. Citováno 2016-12-12.
[…] Aplikace Notes používá ke kódování všech textových dat interně používaných jejími programy jedinou znakovou sadu, Lotus Multibyte Character Set (LMBCS). Kdykoli prostředí Notes poprvé zadá text zakódovaný v jiné znakové sadě než LMBCS, přeloží text do řetězce LMBCS a kdykoli musí odeslat text v jiné znakové sadě než LMBCS, převede interní řetězec LMBCS do příslušné znakové sady. Protože veškerý text je interně formátován pomocí LMBCS, jsou všechny operace zpracování textu […] prováděny pouze jedním způsobem. LMBCS používá až tři bajty v paměti k reprezentaci jednoho textového znaku […]
- ^ A b C d E F G h i j k l m n Ó str q r s t u proti w X y z aa ab ac inzerát ae af ag ah ai aj ak al dopoledne an ao ap vod ar tak jako Murray, Brendan; Snyder-Grant, Jim, eds. (2016) [2000-02-09]. „ucnv_lmb.c“. Mezinárodní komponenty pro Unicode. Mezinárodní obchodní stroje (IBM).
- ^ Batutis, Edward J. (11.11.2001). „Re: převaděč typů“. Mezinárodní komponenty pro Unicode (JIP). Archivováno od originálu 2016-12-06. Citováno 2016-12-06.
- ^ A b C d E F G h i j „LMBCS“ (v japonštině). 2009-02-03. Archivováno od originálu 26. 11. 2016. Citováno 2016-11-26.[1]
- ^ A b „Anhang 2. Der Lotus Multibyte Zeichensatz (LMBCS)“ [Dodatek 2. Lotus Multibyte Character Set (LMBCS)]. Lotus 1-2-3 verze 3.1 Referenzhandbuch [Referenční příručka k aplikaci Lotus 1-2-3 verze 3.1] (v němčině) (1. vyd.). Cambridge, MA, USA: Lotus Development Corporation. 1989. str. A2-1 – A2-13. 302168.
- ^ A b C „lmb-excp.ucm“. 2000-02-10.
Další čtení
- Narozen, Günter (Prosinec 2000) [1990]. „Kapitel 2. LOTUS 1-2-3-Format (WK3)“ [Kapitola 2. Formát Lotus 1-2-3 WK3]. Datformát - Eine Referenz - Tabellenkalkulation, Text, Grafik, Multimédia, Zvuk a internet [Formáty souborů - reference - tabulky, text, grafika, multimédia, zvuk a internet] (PDF) (v němčině). Bonn, Německo: Galileo Computing. ISBN 3-934358-83-7. Archivováno (PDF) od původního dne 2016-11-29. Citováno 2016-11-28. (Zahrnuje některé informace o systémových řadách LMBCS a Lotus.)
- „Tabulky LMBCS“. Uživatelská příručka - 123 Release 4 pro Windows (Fax). Vývoj Lotus. 1995 [01.01.1994]. KAPITOLA: Dodatek A Používání znakové sady Lotus Multibyte. Faxem 10955. Citováno 2016-12-06.
- "Zadávání znaků LMBCS". Uživatelská příručka - 123 Release 4 pro Windows (Fax). Vývoj Lotus. 1995 [01.01.1994]. KAPITOLA: Dodatek A Používání znakové sady Lotus Multibyte. Faxem 10954. Citováno 2016-12-06.
- Podpora Lotus. „Poznámky od podpory: Mezinárodní znakové sady SMTP MTA“. IBM developerWorks. IBM. Archivováno z původního dne 2016-12-08. Citováno 2016-12-08.
- Soubory pro překlad znaků (.CTF) v prostředí Notes 2.xa soubory ve službě Country Language Service (.CLS) v prostředí Notes 3.0 a vyšších obsahují informace o překladu LMBCS do jiných kódových stránek [2] [3]
externí odkazy
- Berntrop-Bos, Lars (10.7.2014). „Blast from the past: LMBCS tables for Windows, OS / 2, Unix and Macintosh“. Archivováno od originálu 26. 11. 2016. Citováno 2016-11-26.