Wielobajtowy zestaw znaków Lotus
Lotus Multi-Byte Character Set ( LMBCS ) to zastrzeżone wielobajtowe kodowanie znaków, pierwotnie opracowane w 1988 roku w Lotus Development Corporation przy udziale Boba Balabana i innych. Stworzony mniej więcej w tym samym czasie i rozwiązujący niektóre z tych samych problemów, LMBCS można postrzegać jako równoległy rozwój i możliwą alternatywę dla Unicode . Aby zapewnić maksymalną kompatybilność, późniejsze wydania LMBCS zawierają UTF-16 jako podzbiór.
Komercyjnie LMBCS został po raz pierwszy wprowadzony jako domyślny zestaw znaków Lotus 1-2-3 Release 3 dla DOS w marcu 1989 r. I Lotus 1-2-3 / G Release 1 dla OS / 2 w 1990 r., Zastępując 8-bitowy międzynarodowy znak Lotus Set (LICS) i ASCII używane we wcześniejszych wersjach Lotus 1-2-3 i Symphony tylko dla DOS . LMBCS jest również używany w IBM / Lotus SmartSuite , Notes i Domino , a także w wielu produktach innych firm.
LMBCS koduje znaki wymagane dla języków używających alfabetu łacińskiego , arabskiego , hebrajskiego , greckiego i cyrylicy , tajskiego , chińskiego , japońskiego i koreańskiego systemu pisma oraz symboli technicznych.
kodowania
Technicznie rzecz biorąc, LMBCS to kodowanie typu lead-byte, w którym punkt kodowy 00 hex , jak również punkty kodowe 20 hex (32) do 7F hex (127) są identyczne z ASCII (jak również z LICS).
Punkt kodowy 00 hex jest zawsze traktowany jako znak NUL , aby zapewnić maksymalną kompatybilność kodu z istniejącymi bibliotekami oprogramowania obsługującymi łańcuchy zakończone znakiem NUL w wielu językach programowania, takich jak C . Dotyczy to nawet kodów UTF-16be, w których słowa kodowe w postaci xx00 hex są odwzorowywane na kody do użytku prywatnego w postaci F6xx hex podczas kodowania w celu uniknięcia użycia bajtów NUL oraz do znaków sterujących z ucieczką, gdzie 20 klątwa jest dodawany do znaków kontrolnych C0 (ale nie C1) po heksadecymalnym bajcie wiodącym 0F.
Punkty kodowe od 01 hex do 1F hex , które służą jako kody kontrolne w ASCII, są używane jako bajty wiodące do przełączania definicji punktów kodowych powyżej 7F hex między kilkoma grupami kodowymi (podobnie jak strony kodowe ) i jednocześnie określają jedną - lub charakter wielobajtowy dla odpowiedniej grupy kodu.
Na przykład grupa kodowa 1 (z bajtem grupowym 01 hex ) jest prawie identyczna ze stroną kodową SBCS 850 , podczas gdy grupa kodowa 16 (z bajtem grupowym 10 hex ) jest podobna do japońskiej strony kodowej MBCS 932 . Znaki wielobajtowe mogą zatem zajmować dwa lub trzy bajty.
W kanonicznym LMBCS każdy znak zaczyna się od bajtu grupy. Aby skrócić długość, w zoptymalizowanym lub skompresowanym LMBCS domyślną grupę kodu lub kod grupy optymalizacji można zdefiniować na podstawie aplikacji lub procesu (najlepiej wybrać zgodnie z najwyższym prawdopodobieństwem wystąpienia) i należy go w jakiś sposób przekazać kodowi interpretującemu (np. przez określenie odpowiedniego „LMBCS- n " nazwa). W ten sposób bajt grupy można pominąć dla tych znaków. Lotus 1-2-3 pobiera kod grupy optymalizacji z nagłówka odpowiedniego pliku źródłowego, podczas gdy w Lotus Notes kod grupy optymalizacji jest zawsze 01 szesnastkowy .
Domyślny | Grupa | Bajty | Opis |
---|---|---|---|
Nie dotyczy | 00 szesnastkowy | 1 | NUL |
LMBCS-1 | 01 szesnastkowy | 2 | Strona kodowa 850 (DOS Latin-1) |
LMBCS-2 | 02 szesnastkowy | 2 | Strona kodowa 851 (grecki DOS) |
LMBCS-3 | 03 szesnastkowy | 2 | Strona kodowa 1255 (Windows hebrajski) |
LMBCS-4 | 04 szesnastkowy | 2 | Strona kodowa 1256 (Windows arabski) |
LMBCS-5 | 05 szesnastkowy | 2 | Strona kodowa 1251 (cyrylica Windows) |
LMBCS-6 | 06 szesnastkowy | 2 | Strona kodowa 852 (DOS Latin-2) |
Nie dotyczy | 07 szesnastkowy | 1 | BEL |
LMBCS-8 | 08 szesnastkowy | 2 | Strona kodowa 1254 (Windows turecki) |
Nie dotyczy | 09 szesnastkowy | 1 | PATKA |
Nie dotyczy | 0A szesnastkowy | 1 | LF |
LMBCS-11 | 0B heks | 2 | Strona kodowa 874 (tajski) |
(LMBCS-12) | 0C szesnastkowy | 2 | Skryty |
Nie dotyczy | 0D szesnastkowy | 1 | CR |
(LMBCS-14) | 0E heks | 2 | Skryty |
(LMBCS-15) | 0F szesnastkowy | 2 | Przemapowano kody kontrolne C0/C1 |
LMBCS-16 | 10 szesnastkowy | 3 | Strona kodowa 932/943 ( japoński / Shift-JIS ) |
LMBCS-17 | 11 heks | 3 | Strona kodowa 949/1261 ( koreański ) |
LMBCS-18 | 12 szesnastkowy | 3 | Strona kodowa 950 (chiński tradycyjny / Tajwan / Big5 ) |
LMBCS-19 | 13 szesnastkowy | 3 | Strona kodowa 936/1386 ( chiński uproszczony ) |
(LMBCS-20) | 14 szesnastkowy | 3 | UTF-16 ( Unicode ) |
Nie dotyczy | 15 szesnastkowy | 3 | Skryty |
Nie dotyczy | 16 szesnastkowy | 3 | Skryty |
Nie dotyczy | 17 szesnastkowy | 3 | Skryty |
Nie dotyczy | 18 szesnastkowy | 3 | Skryty |
Nie dotyczy | 19 szesnastkowy | 1 | Gama systemów Lotus 1-2-3 |
Nie dotyczy | 1A szesnastkowy | 3 | Skryty |
Nie dotyczy | 1B heks | 3 | Skryty |
Nie dotyczy | 1C szesnastkowy | 3 | Skryty |
Nie dotyczy | 1D szesnastkowy | 3 | Skryty |
Nie dotyczy | 1E heks | 3 | Skryty |
Nie dotyczy | 1F szesnastkowy | 3 | Skryty |
Zestaw znaków
Bez bajtu prefiksu punkty kodowe od 32 (20 hex ) do 127 (7F hex ) są interpretowane w następujący sposób (odpowiadające kodom LMBCS od 32 do 127):
Kody jednobajtowe ( ASCII / ISO-646-US ) | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | mi | F | |
2x | Sp | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / |
3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
4x | @ | A | B | C | D | mi | F | G | H | I | J | k | Ł | M | N | O |
5x | P | Q | R | S | T | u | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
6x | ` | A | B | C | D | mi | F | G | H | I | J | k | l | M | N | o |
7x | P | Q | R | S | T | u | w | w | X | y | z | { | | | } | ~ | DEL / ⌂ |
Grupa 1
Punkty kodowe grupy 1 LMBCS od 128 (80 hex ) do 255 (FF hex ) są identyczne z odpowiednimi punktami kodowymi na stronie kodowej 850 (DOS Latin-1), podczas gdy punkty kodowe od 1 (01 hex ) do 127 (7F hex ) są zdefiniowane zgodnie z następującą listą wyjątków (odpowiadającą kodom LMBCS od 256 do 383):
LMBCS Grupa 1, dolna połowa | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | mi | F | |
0x | NUL | ☺ | ☻ | ♥ | ♦ | ♣ | ♠ | • | ◘ | ○ | ◙ | ♂ | ♀ | ♪ | ♫ | ☼ |
1x | ► | ◄ | ↕ | ‼ | ¶ | § | ▬ | ↨ | ↑ | ↓ | → | ← | ∟ | ↔ | ▲ | ▼ |
2x | ¨ | ~ | ˚ | ^ | ` | ´ | “ | ' | … | - | — | ' | ' | ‹ | › | |
3x | ¨ | ~ | ˚ | ^ | ` | ´ | „ | ‚ | ” | ‗ | nbsp | � | ||||
4x | Œ | œ | ź | ˙ | ˚ | ╞ | ╟ | ▌ | ▐ | ◊ | ⌘ | | | Ω | ||
5x | ╨ | ╤ | ╥ | ╙ | ╘ | ╒ | ╓ | ╫ | ╪ | ╡ | ╢ | ╖ | ╕ | ╜ | ╛ | ╧ |
6x | ij | ja | fi | fl | ʼn | ŀ | Ŀ | ¯ | ˘ | ˝ | ˛ | ˇ | ~ | ^ | ||
7x | † | ‡ | H | H | T | T | ™ | ℓ | N | N | ĸ | Kr | ⌐ | ₤ | ₧ |
Grupa 2
Punkty kodowe grupy 2 LMBCS od 128 (80 hex ) do 255 (FF hex ) są identyczne z odpowiednimi punktami kodowymi na stronie kodowej 851 (grecki DOS), podczas gdy punkty kodowe od 1 (01 hex ) do 127 (7F hex ) są zdefiniowane zgodnie z następująca lista wyjątków:
LMBCS Grupa 2, dolna połowa | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | mi | F | |
0x | NUL | ͺ | ΅ | Ϊ | Ϋ | - | ΄ | ʼ | ʽ | ‾ | | | ||||
1x | | | ⇕ | ⅞ | ⅝ | ⅜ | ⅛ | | ⇑ | ⇓ | ⇒ | ⇐ | | ⇔ | | |
2x | | | | | | | | | | | | | | | | |
3x | | | | | | | | | | | | | | | | |
4x | ∠ | ∇ | | | | | | | | | | | | | | |
5x | ∂ | ℵ | ℑ | ℜ | | | | | | | | ∋ | ∈ | ∉ | ⊆ | ⊇ |
6x | ⊗ | ⊕ | ✓ | ⋀ | ∁ | ∫ | ∀ | ∃ | | ′ | ″ | ∞ | ∝ | φ | ∪ | ∩ |
7x | ≡ | ≅ | ≥ | ≤ | ⌠ | ⌡ | ≠ | ≈ | ⁄ | ∙ | ‰ | √ | ⁿ | ∅ | ⊂ | ⊃ |
Grupa 6
Punkty kodowe grupy 6 LMBCS od 128 (80 hex ) do 255 (FF hex ) są identyczne z odpowiednimi punktami kodowymi na stronie kodowej 852 (DOS Latin-2), podczas gdy punkty kodowe od 1 (01 hex ) do 127 (7F hex ) są zdefiniowane zgodnie z następującą listą wyjątków:
LMBCS Grupa 6, dolna połowa | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | mi | F | |
0x | NUL | A | C | C | C | C | MI | mi | MI | mi | G | G | G | G | G | G |
1x | H | H | I | I | I | I | I | I | J | J | Ķ | ķ | Ļ | ļ | N | N |
2x | O | ō | R | R | S | S | Ũ | u | Ū | u | Ŭ | ŭ | Ų | ų | A | |
3x | ||||||||||||||||
4x | ||||||||||||||||
5x | ||||||||||||||||
6x | ||||||||||||||||
7x |
Zobacz też
- Klawisz tworzenia
- GB 18030
- Standardowy schemat kompresji dla Unicode (SCSU)
- Symbol (krój pisma)
- Standard kodu znaków Xerox (XCCS)
Notatki
Dalsza lektura
- Urodzony, Günter [w języku niemieckim] (grudzień 2000) [1990]. „Kapitel 2. Format LOTUS 1-2-3 (WK3)” [Rozdział 2. Format Lotus 1-2-3 WK3]. Dateiformate – Eine Referenz – Tabellenkalkulation, Text, Grafik, Multimedia, Sound und Internet [ Formaty plików – odniesienie – arkusze kalkulacyjne, tekst, grafika, multimedia, dźwięk i internet ] (PDF) (w języku niemieckim). Bonn, Niemcy: Galileo Computing . ISBN 3-934358-83-7 . Zarchiwizowane (PDF) od oryginału w dniu 29.11.2016 . Źródło 2016-11-28 . (Zawiera informacje o zakresach systemów LMBCS i Lotus).
- „Tabele LMBCS” . Podręcznik użytkownika – 123 Wersja 4 dla systemu Windows (faks). Rozwój Lotosu . 1995 [1994-01-01]. ROZDZIAŁ: Dodatek A Używanie zestawu znaków wielobajtowych Lotus. Faks 10955 . Źródło 2016-12-06 .
- „Wprowadzanie znaków LMBCS” . Podręcznik użytkownika – 123 Wersja 4 dla systemu Windows (faks). Rozwój Lotosu . 1995 [1994-01-01]. ROZDZIAŁ: Dodatek A Używanie zestawu znaków wielobajtowych Lotus. Faks 10954 . Źródło 2016-12-06 .
- Wsparcie Lotusa. „Uwagi od pomocy technicznej: międzynarodowe zestawy znaków SMTP MTA” . IBM DeveloperWorks . IBM . Zarchiwizowane od oryginału w dniu 2016-12-08 . Źródło 2016-12-08 .
- Pliki tłumaczenia znaków (.CTF) przez Notes 2.x i pliki Country Language Service (.CLS) przez Notes 3.0 i nowsze zawierają informacje o tłumaczeniu LMBCS na inne strony kodowe [2] [3]
Linki zewnętrzne
- Berntrop-Bos, Lars (2014-07-10). „Podmuch z przeszłości: tabele LMBCS dla systemów Windows, OS/2, Unix i Macintosh” . Zarchiwizowane od oryginału w dniu 2016-11-26 . Źródło 2016-11-26 .