Set di caratteri multibyte Lotus - Lotus Multi-Byte Character Set
Il Lotus Multi-Byte Character Set ( LMBCS ) è una codifica di caratteri multibyte proprietaria originariamente concepita nel 1988 presso Lotus Development Corporation con l'input di Bob Balaban e altri. Creato più o meno nello stesso periodo e affrontando alcuni degli stessi problemi, LMBCS potrebbe essere visto come sviluppo parallelo e possibile alternativa a Unicode . Per la massima compatibilità, i numeri successivi di LMBCS incorporano UTF-16 come sottoinsieme.
Commercialmente, LMBCS è stato introdotto per la prima volta come set di caratteri predefinito di Lotus 1-2-3 Release 3 per DOS nel marzo 1989 e Lotus 1-2-3 / G Release 1 per OS / 2 nel 1990, sostituendo il Lotus International Character a 8 bit Set (LICS) e ASCII utilizzati nelle versioni precedenti solo DOS di Lotus 1-2-3 e Symphony . LMBCS è utilizzato anche in IBM / Lotus SmartSuite , Notes e Domino , nonché in una serie di prodotti di terze parti.
LMBCS codifica i caratteri richiesti per le lingue utilizzando i caratteri latini , arabi , ebraici , greci e cirillici , i sistemi di scrittura thailandese , cinese , giapponese e coreano e simboli tecnici.
Codifiche
Tecnicamente, LMBCS è una codifica lead-byte in cui il punto di codice 00 hex così come i punti di codice da 20 hex (32) a 7F hex (127) sono identici ad ASCII (oltre che a LICS).
Codice punto 00 hex è sempre trattato come carattere NUL per garantire la massima compatibilità con le librerie di codice software esistenti che si occupano di stringhe null-terminate in molti linguaggi di programmazione come C . Questo vale anche per i codici UTF-16be, dove le parole in codice con la forma xx00 hex sono mappate a codici di uso privato con la forma F6xx hex durante la codifica per evitare l'uso di byte NUL e per i caratteri di controllo con escape, dove 20 hex viene aggiunto ai caratteri di controllo C0 (ma non C1) dopo il byte iniziale esadecimale 0F .
I punti di codice da 01 esadecimale a 1F esadecimale , che servono come codici di controllo in ASCII, vengono utilizzati come byte iniziali per cambiare la definizione dei punti di codice sopra 7F esadecimale tra diversi gruppi di codici (simili alle pagine di codice ) e allo stesso tempo determinare un singolo - o natura multibyte per il gruppo di codice corrispondente.
Ad esempio, il gruppo di codici 1 (con byte di gruppo 01 hex ) è quasi identico alla tabella codici SBCS 850 , mentre il gruppo di codici 16 (con byte di gruppo 10 hex ) è simile alla tabella codici MBCS giapponese 932 . I caratteri multibyte possono quindi occupare due o tre byte.
Nel canonico LMBCS , ogni carattere inizia con il suo byte di gruppo. Per ridurre la lunghezza, in ottimizzate o LMBCS compressi un gruppo di codice predefinito o codice di gruppo ottimizzazione possono essere definiti relative a ogni applicazione o base processo (idealmente scelti secondo la più alta probabilità di accadimento) e deve essere comunicato al codice interpretare in qualche modo (ad esempio specificando il nome "LMBCS- n " corrispondente ). In tal modo, il byte di gruppo può essere omesso per questi caratteri. Lotus 1-2-3 recupera il codice del gruppo di ottimizzazione dall'intestazione del file di origine corrispondente, mentre per Lotus Notes il codice del gruppo di ottimizzazione è fissato in modo da essere sempre 01 hex .
| Predefinito | Gruppo | Byte | Descrizione |
|---|---|---|---|
| N / A | 00 esadecimale | 1 | NUL |
| LMBCS-1 | 01 esadecimale | 2 | Pagina codici 850 (DOS Latin-1) |
| LMBCS-2 | 02 hex | 2 | Code page 851 (DOS greco) |
| LMBCS-3 | 03 esadecimale | 2 | Pagina codici 1255 (Windows ebraico) |
| LMBCS-4 | 04 esadecimale | 2 | Pagina codici 1256 (Windows Arabic) |
| LMBCS-5 | 05 esadecimale | 2 | Pagina codici 1251 (Windows Cirillico) |
| LMBCS-6 | 06 hex | 2 | Pagina codici 852 (DOS Latin-2) |
| N / A | 07 hex | 1 | BEL |
| LMBCS-8 | 08 hex | 2 | Tabella codici 1254 (Windows turco) |
| N / A | 09 hex | 1 | TAB |
| N / A | 0A esadecimale | 1 | LF |
| LMBCS-11 | 0B esadecimale | 2 | Pagina codici 874 (Thai) |
| (LMBCS-12) | 0C esadecimale | 2 | Riservato |
| N / A | 0D esadecimale | 1 | CR |
| (LMBCS-14) | 0E esadecimale | 2 | Riservato |
| (LMBCS-15) | 0F esadecimale | 2 | Codici di controllo C0 / C1 rimappati |
| LMBCS-16 | 10 hex | 3 | Tabella codici 932 / 943 (Giapponese / Shift-JIS) |
| LMBCS-17 | 11 hex | 3 | Tabella codici 949 / 1261 (coreano) |
| LMBCS-18 | 12 hex | 3 | Pagina codici 950 (cinese tradizionale / Taiwan / Big5 ) |
| LMBCS-19 | 13 hex | 3 | Tabella codici 936 / 1386 (Cinese) |
| (LMBCS-20) | 14 hex | 3 | UTF-16 ( Unicode ) |
| N / A | 15 hex | 3 | Riservato |
| N / A | 16 hex | 3 | Riservato |
| N / A | 17 hex | 3 | Riservato |
| N / A | 18 hex | 3 | Riservato |
| N / A | 19 hex | 1 | Gamma di sistemi Lotus 1-2-3 |
| N / A | 1A esadecimale | 3 | Riservato |
| N / A | 1B esadecimale | 3 | Riservato |
| N / A | 1C hex | 3 | Riservato |
| N / A | 1D hex | 3 | Riservato |
| N / A | 1E hex | 3 | Riservato |
| N / A | 1F esadecimale | 3 | Riservato |
Set di caratteri
Senza byte prefisso, i punti di codice da 32 (20 hex ) a 127 (7F hex ) vengono interpretati come segue (corrispondenti ai codici LMBCS da 32 a 127):
| _0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _UN | _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 |
Io 0049 |
J 004A |
K 004B |
L 004C |
M 004D |
N 004E |
O 004F |
| 5_ 80 |
P 0050 |
Q 0051 |
R 0052 |
S 0053 |
T 0054 |
U 0055 |
V 0056 |
W 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 |
io 0069 |
j 006A |
k 006B |
l 006C |
m 006D |
n 006E |
o 006F |
| 7_ 112 |
p 0070 |
q 0071 |
r 0072 |
s 0073 |
t 0074 |
u 0075 |
v 0076 |
w 0077 |
x 0078 |
y 0079 |
z 007A |
{ 007B |
| 007C |
} 007D |
~ 007E |
DEL / ⌂ 007F / 2302 |
Lettera Numero Punteggiatura Simbolo Altro Non definito
Gruppo 1
I punti di codice del gruppo 1 LMBCS da 128 (80 hex ) a 255 (FF hex ) sono identici ai punti di codice corrispondenti nella tabella codici 850 (DOS Latin-1), mentre i punti di codice da 1 (01 hex ) a 127 (7F hex ) sono definiti secondo il seguente elenco di eccezioni (corrispondente ai codici LMBCS da 256 a 383):
| _0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _UN | _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 |
- 2013 |
- 2014 |
' 2018 |
' 2019 |
‹ 2039 |
› 203A |
|
| 3_ 48 |
¨ 00A8 |
~ 007E |
˚ 02DA |
^ 005E |
« 0060 |
´ 00B4 |
„ 201E |
‚ 201A |
" 201D |
‗ 2017 |
nbsp 00A0 |
FFFD |
||||
| 4_ 64 |
Œ 0152 |
œ 0153 |
Ÿ 0178 |
˙ 02D9 |
˚ 02DA |
╞ 255E |
╟ 255F |
▌ 258C |
▐ 2590 |
◊ 25CA |
⌘ 2318 |
F8FF |
F8FE |
Ω 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 |
fi FB01 |
fl FB02 |
ʼn 0149 |
ŀ 0140 |
Ŀ 013F |
¯ 00AF |
˘ 02D8 |
˝ 02DD |
˛ 02DB |
02C7 |
~ 007E |
^ 005E |
||
| 7_ 112 |
† 2020 |
‡ 2021 |
Ħ 0126 |
ħ 0127 |
Ŧ 0166 |
ŧ 0167 |
™ 2122 |
ℓ 2113 |
Ŋ 014A |
ŋ 014B |
ĸ 0138 |
Kr |
⌐ 2310 |
₤ 20A4 |
₧ 20A7 |
Lettera Numero Punteggiatura Simbolo Altro Non definito Mappato a un carattere Unicode per uso privato
Gruppo 2
I punti di codice del gruppo 2 LMBCS da 128 (80 hex ) a 255 (FF hex ) sono identici ai punti di codice corrispondenti nella tabella codici 851 (DOS greco), mentre i punti di codice da 1 (01 hex ) a 127 (7F hex ) sono definiti secondo il seguente elenco di eccezioni:
| _0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _UN | _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 |
Lettera Numero Punteggiatura Simbolo Altro Non definito Mappato a un carattere Unicode per uso privato
Gruppo 6
I punti di codice del gruppo 6 LMBCS da 128 (80 hex ) a 255 (FF hex ) sono identici ai punti di codice corrispondenti nella tabella codici 852 (DOS Latin-2), mentre i punti di codice da 1 (01 hex ) a 127 (7F hex ) sono definiti secondo il seguente elenco di eccezioni:
| _0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _UN | _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 |
Lettera Numero Punteggiatura Simbolo Altro Non definito
Guarda anche
- Componi la sequenza di tasti
- GB 18030
- Schema di compressione standard per Unicode (SCSU)
- Simbolo (carattere tipografico)
- Xerox Character Code Standard (XCCS)
Appunti
Riferimenti
Ulteriore lettura
- Nato, Günter (dicembre 2000) [1990]. "Kapitel 2. Formato LOTUS 1-2-3 (WK3)" [Capitolo 2. Formato Lotus 1-2-3 WK3]. Dateiformate - Eine Referenz - Tabellenkalkulation, Text, Grafik, Multimedia, Sound und Internet [ Formati di file - un riferimento - fogli di calcolo, testo, grafica, multimedia, suono e Internet ] (PDF) (in tedesco). Bonn, Germania: Galileo Computing . ISBN 3-934358-83-7 . Archiviato (PDF) dall'originale il 29/11/2016 . Estratto 2016/11/28 . (Include alcune informazioni su LMBCS e sugli intervalli di sistema Lotus.)
- "Tabelle LMBCS" . Guida dell'utente - 123 versione 4 per Windows (Fax). Lotus Development . 1995 [1994-01-01]. CAPITOLO: Appendice A Utilizzo del set di caratteri Lotus Multibyte. Fax 10955 . Estratto 2016/12/06 .
- "Immissione di caratteri LMBCS" . Guida dell'utente - 123 versione 4 per Windows (Fax). Lotus Development . 1995 [1994-01-01]. CAPITOLO: Appendice A Utilizzo del set di caratteri Lotus Multibyte. Fax 10954 . Estratto 2016/12/06 .
- Supporto Lotus. "Note dal supporto: SMTP MTA International Character Sets" . IBM developerWorks . IBM . Archiviata dall'originale il 8 dicembre 2016 . Estratto 2016/12/08 .
- I file Character Translation Files (.CTF) di Notes 2.xe i file Country Language Service (.CLS) di Notes 3.0 e versioni successive contengono informazioni sulla traduzione LMBCS in altre tabelle codici [2] [3]
link esterno
- Berntrop-Bos, Lars (10/07/2014). "Un tuffo nel passato: tabelle LMBCS per Windows, OS / 2, Unix e Macintosh" . Archiviata dall'originale il 26/11/2016 . Estratto 2016/11/26 .