El Lotus de varios bytes de juego de caracteres ( LMBCS ) es un propietario de varios bytes codificación de caracteres concebido originalmente en 1988 en Lotus Development Corporation con el aporte de Bob Balaban y otros. [1] Creado aproximadamente al mismo tiempo y abordando algunos de los mismos problemas, LMBCS podría verse como un desarrollo paralelo y una posible alternativa a Unicode . [1] Para una máxima compatibilidad, las ediciones posteriores de LMBCS incorporan UTF-16 como un subconjunto. [2] [3]
Comercialmente, LMBCS se introdujo por primera vez como el conjunto de caracteres predeterminado de Lotus 1-2-3 Release 3 para DOS en marzo de 1989 [1] [4] y Lotus 1-2-3 / G Release 1 para OS / 2 [1] en 1990 reemplazando el conjunto de caracteres internacional Lotus (LICS) de 8 bits y ASCII utilizados en versiones anteriores de Lotus 1-2-3 y Symphony sólo para DOS . [5] LMBCS también se utiliza en IBM / Lotus SmartSuite , Notes y Domino , [1] así como en varios productos de terceros.
LMBCS codifica los caracteres necesarios para los idiomas que utilizan las escrituras latina , [6] árabe , hebrea , griega y cirílica [6] , los sistemas de escritura tailandés , chino , japonés [6] y coreano , y símbolos técnicos.
Codificaciones
Técnicamente, LMBCS es una codificación de byte inicial donde el punto de código 00 hexadecimal así como los puntos de código 20 hexadecimal (32) a 7F hexadecimal (127) son idénticos a ASCII [1] (así como a LICS). [5]
Código de punto 00 hexagonal siempre es tratado como carácter NUL para asegurar la compatibilidad máxima con código de bibliotecas de software existentes que se ocupan de cadenas terminadas en cero [1] en muchos lenguajes de programación como C . [a] Esto se aplica incluso a los códigos UTF-16be, donde las palabras de código con la forma xx00 hexadecimal se asignan a códigos de uso privado con la forma F6xx hexadecimal durante la codificación para evitar el uso de bytes NUL, [7] y para caracteres de control de escape, donde 20 hexadecimales se agregan a los caracteres de control C0 (pero no C1) después del byte de avance hexadecimal 0F . [7]
Los puntos de código 01 hexadecimal a 1F hexadecimal , que sirven como códigos de control en ASCII, se utilizan como bytes iniciales para cambiar la definición de puntos de código por encima de 7F hexadecimal entre varios grupos de códigos (similar a las páginas de códigos ) y al mismo tiempo determinar una sola - o naturaleza multibyte para el grupo de códigos correspondiente. [1]
Por ejemplo, el grupo de códigos 1 (con el byte de grupo 01 hex ) [1] es casi idéntico a la página de códigos SBCS 850 , mientras que el grupo de códigos 16 (con el byte de grupo 10 hex ) [1] es similar a la página de códigos MBCS japonesa 932 . Por tanto, los caracteres de varios bytes pueden ocupar dos o tres bytes. [7] [6]
En LMBCS canónico , cada carácter comienza con su byte de grupo. [1] Para reducir la longitud, en optimizadas o LMBCS comprimido un grupo de código predeterminado o código de grupo de optimización se puede definir en una por aplicación o base proceso (idealmente elegido de acuerdo con la probabilidad más alta de ocurrencia) [1] y debe ser comunicada a el código de interpretación de alguna manera (por ejemplo, especificando el nombre "LMBCS- n " correspondiente). [8] Por lo tanto, el byte de grupo se puede omitir para estos caracteres. [1] Lotus 1-2-3 recupera el código del grupo de optimización del encabezado del archivo fuente correspondiente, [7] mientras que para Lotus Notes el código del grupo de optimización está fijo para ser siempre 01 hexadecimal . [2] [7]
Defecto | Grupo | Bytes | Descripción |
---|---|---|---|
N / A | 00 hexadecimal | 1 [7] | NUL |
LMBCS-1 | 01 hexadecimal | 2 [7] | Página de códigos 850 (DOS Latin-1) [2] [7] |
LMBCS-2 | 02 hexadecimal | 2 [7] | Página de códigos 851 (DOS griego) [2] [7] |
LMBCS-3 | 03 hexadecimal | 2 [7] | Página de códigos 1255 (hebreo de Windows) [2] [7] |
LMBCS-4 | 04 maleficio | 2 [7] | Página de códigos 1256 (árabe de Windows) [2] [7] |
LMBCS-5 | 05 hexadecimal | 2 [7] | Página de códigos 1251 (Windows Cyrillic) [2] [7] |
LMBCS-6 | 06 hexadecimal | 2 [7] | Página de códigos 852 (DOS Latin-2) [2] [7] |
N / A | 07 hexadecimal | 1 [7] | BEL [2] |
LMBCS-8 | 08 hexadecimal | 2 [7] | Página de códigos 1254 (turco de Windows) [2] [9] [7] |
N / A | 09 hexadecimal | 1 [7] | TAB [2] [9] [7] |
N / A | 0A hex | 1 [7] | LF [2] [9] [7] |
LMBCS-11 | 0B hexadecimal | 2 [7] | Página de códigos 874 (tailandés) [9] [7] |
(LMBCS-12) | 0C hexadecimal | 2 [7] | Reservado [2] |
N / A | 0D hexadecimal | 1 [7] | CR [2] [9] [7] |
(LMBCS-14) | 0E hexadecimal | 2 [7] | Reservado [2] |
(LMBCS-15) | 0F hex | 2 [7] | Códigos de control C0 / C1 reasignados [7] |
LMBCS-16 | 10 hexadecimales | 3 [7] | Página de códigos 932 / [2] 943 [7] (japonés / Shift-JIS) [2] [9] |
LMBCS-17 | 11 hexadecimales | 3 [7] | Página de códigos 949 / [2] 1261 [7] (coreano) [2] [9] |
LMBCS-18 | 12 hexadecimales | 3 [7] | Página de códigos 950 [2] [7] (chino tradicional / Taiwán / Big5 ) [2] [9] |
LMBCS-19 | 13 hexadecimales | 3 [7] | Página de códigos 936 / [2] 1386 [7] (chino simplificado) [2] [9] |
(LMBCS-20) | 14 hexadecimales | 3 [7] | UTF-16 ( Unicode ) [2] [3] [7] |
N / A | 15 hexadecimales | 3 | Reservado [2] |
N / A | 16 hexadecimales | 3 | Reservado [2] |
N / A | 17 hexadecimales | 3 | Reservado [2] |
N / A | 18 hexadecimales | 3 | Reservado [2] |
N / A | 19 hexadecimales | 1 [7] | Gama del sistema Lotus 1-2-3 [9] [7] |
N / A | 1A hex | 3 | Reservado [2] |
N / A | 1B hex | 3 | Reservado [2] |
N / A | 1C hexagonal | 3 | Reservado [2] |
N / A | 1D hex | 3 | Reservado [2] |
N / A | 1E hex | 3 | Reservado [2] |
N / A | 1F hex | 3 | Reservado [2] |
Conjunto de caracteres
Sin el byte de prefijo, los puntos de código 32 (20 hex ) a 127 (7F hex ) se interpretan de la siguiente manera (correspondientes a los códigos LMBCS 32 a 127):
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _MI | _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 | Yo 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 | un 0061 | b 0062 | c 0063 | d 0064 | e 0065 | f 0066 | g 0067 | h 0068 | yo 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 |
Letra Número Puntuación Símbolo Otro Indefinido
Grupo 1
Los puntos de código del grupo 1 de LMBCS 128 (80 hex ) a 255 (FF hex ) son idénticos a los puntos de código correspondientes en la página de códigos 850 (DOS Latin-1), mientras que los puntos de código 1 (01 hex ) a 127 (7F hex ) están definidos según la siguiente lista de excepciones (correspondiente a los códigos LMBCS 256 a 383):
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _MI | _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 | ╜ 255C | ╛ 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 |
Letra Número Puntuación Símbolo Otro Indefinido Asignado a un carácter de uso privado Unicode
Grupo 2
Los puntos de código del grupo 2 de LMBCS 128 (80 hex ) a 255 (FF hex ) son idénticos a los puntos de código correspondientes en la página de códigos 851 (DOS griego), mientras que los puntos de código 1 (01 hex ) a 127 (7F hex ) se definen de acuerdo con la siguiente lista de excepciones: [f]
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _MI | _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 |
Letra Número Puntuación Símbolo Otro Indefinido Asignado a un carácter de uso privado Unicode
Grupo 6
Los puntos de código del grupo 6 de LMBCS 128 (80 hex ) a 255 (FF hex ) son idénticos a los puntos de código correspondientes en la página de códigos 852 (DOS Latin-2), mientras que los puntos de código 1 (01 hex ) a 127 (7F hex ) están definidos según la siguiente lista de excepciones: [f]
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _MI | _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 |
Letra Número Puntuación Símbolo Otro Indefinido
Ver también
- Redactar secuencia de teclas
- GB 18030
- Esquema de compresión estándar para Unicode (SCSU)
- Símbolo (tipo de letra)
- Estándar de código de caracteres de Xerox (XCCS)
Notas
- ^ Lotus 1-2-3 versión 3.0 para DOS y versiones más recientes están escritos en 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 Según la documentación, este punto de código no es compatible con Lotus 1-2-3 Release 3.1+ para DOS y OS / 2 y anteriores.
- ^ a b c d e f g h i Para compatibilidad con Lotus 1-2-3 Release 5.0 .
- ^ Unicode no define un glifo para elsímbolo de moneda de la corona (Krone también conocido como "Kr"), por lo tanto, esto apunta a F8FB hexadecimal en el Área de uso privado de Unicode(PUA).
- ^ a b De acuerdo con el código de documentación, los puntos 1 a 127 de este grupo no son compatibles con Lotus 1-2-3 Release 3.1+ para DOS y OS / 2 y versiones anteriores. Estas versiones solo admitían los puntos de código LMBCS 0 a 511, cubriendo solo el grupo 0 y 1.
Referencias
- ^ a b c d e f g h i j k l m Balaban, Bob (2001). "Juegos de caracteres en varios idiomas: qué son, cómo usarlos" (PDF) . Looseleaf Software, Inc. Archivado (PDF) desde el original el 25 de noviembre de 2016 . Consultado el 25 de noviembre de 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 "Apéndice A. Esquemas de codificación" . Arquitectura de representación de datos de caracteres de IBM . IBM (CDRA). Conjunto de caracteres de varios bytes de Lotus (LMBCS). Archivado desde el original el 26 de noviembre de 2016 . Consultado el 26 de noviembre de 2016 .
Para fines de optimización, el byte de grupo se omite en Notas para valores de un solo byte entre X'20 'y X'FF'. Por ejemplo, LMBCS siempre está optimizado para el grupo 0x01, lo que significa que cualquier carácter en el que el primer byte sea mayor que 0x1F, tiene un byte de grupo implícito de 0x01.
- ^ a b Scherer, Markus; Murray, Brendan (2 de junio de 2000). "Re: MS Excel, Lotus 123 y Unicode" . Archivado desde el original el 6 de diciembre de 2016 . Consultado el 6 de diciembre de 2016 .
- ^ "Kapitel 4. Kompatibilität mit anderen 1-2-3 Versionen - Zeichensätze" [Capítulo 4. Compatibilidad con otras versiones 1-2-3 - Juegos de caracteres]. Lotus 1-2-3 Version 3.1 Upgrader's Handbuch [ Manual del actualizador ] (en alemán) (1 ed.). Cambridge, MA, Estados Unidos: Lotus Development Corporation . 1989. págs. 4-10–4-11. 302173.
- ^ a b Kamenz, Alfred; Vonhoegen, Helmut (1992). Das große Buch zu Lotus 1-2-3 für DOS (en alemán) (1 ed.). Data Becker . págs. 131-132, 357-358. ISBN 3-89011-375-3.
- ^ a b c d Lotus - Inside Notes - La arquitectura de Notes y el servidor Domino (PDF) . Lotus Development Corporation . 2000. Archivado (PDF) desde el original el 12 de diciembre de 2016 . Consultado el 12 de diciembre de 2016 .
[…] Notes utiliza un solo juego de caracteres, el Lotus Multibyte Character Set (LMBCS), para codificar todos los datos de texto utilizados internamente por sus programas. Siempre que Notes ingresa por primera vez texto codificado en un juego de caracteres que no sea LMBCS, traduce el texto a una cadena LMBCS, y siempre que debe generar texto en un juego de caracteres que no sea LMBCS, traduce la cadena LMBCS interna al juego de caracteres apropiado. Debido a que LMBCS formatea internamente todo el texto, todas las operaciones de procesamiento de texto […] se realizan de una sola manera. LMBCS utiliza hasta tres bytes en la memoria para representar un solo carácter de texto […]
- ^ 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 Murray, Brendan; Snyder-Grant, Jim, eds. (2016) [09/02/2000]. "ucnv_lmb.c" . Componentes internacionales para Unicode . International Business Machines (IBM).
- ^ Batutis, Edward J. (3 de noviembre de 2001). "Re: tipos de convertidor" . Componentes internacionales para Unicode (ICU) . Archivado desde el original el 6 de diciembre de 2016 . Consultado el 6 de diciembre de 2016 .
- ^ a b c d e f g h yo j "LMBCS" (en japonés). 2009-02-03. Archivado desde el original el 26 de noviembre de 2016 . Consultado el 26 de noviembre de 2016 .[1]
- ^ a b "Anhang 2. Der Lotus Multibyte Zeichensatz (LMBCS)" [Apéndice 2. El conjunto de caracteres Lotus Multibyte (LMBCS)]. Lotus 1-2-3 Versión 3.1 Referenzhandbuch [ Manual de referencia de Lotus 1-2-3 Versión 3.1 ] (en alemán) (1 ed.). Cambridge, MA, Estados Unidos: Lotus Development Corporation . 1989. págs. A2-1 – A2-13. 302168.
- ^ a b c "lmb-excp.ucm" . 2000-02-10.
Otras lecturas
- Nacido, Günter (diciembre de 2000) [1990]. "Kapitel 2. Formato LOTUS 1-2-3 (WK3)" [Capítulo 2. Formato Lotus 1-2-3 WK3]. Dateiformate - Eine Referenz - Tabellenkalkulation, Text, Grafik, Multimedia, Sound und Internet [ Formatos de archivo - una referencia - hojas de cálculo, texto, gráficos, multimedia, sonido e Internet ] (PDF) (en alemán). Bonn, Alemania: Galileo Computing . ISBN 3-934358-83-7. Archivado (PDF) desde el original el 29 de noviembre de 2016 . Consultado el 28 de noviembre de 2016 . (Incluye información sobre los rangos de sistemas LMBCS y Lotus).
- "Tablas LMBCS" . Guía del usuario - 123 versión 4 para Windows (fax). Desarrollo de Lotus . 1995 [1 de enero de 1994]. CAPÍTULO: Apéndice A Uso del juego de caracteres Lotus Multibyte. Fax 10955 . Consultado el 6 de diciembre de 2016 .
- "Introducción de caracteres LMBCS" . Guía del usuario - 123 versión 4 para Windows (fax). Desarrollo de Lotus . 1995 [1 de enero de 1994]. CAPÍTULO: Apéndice A Uso del juego de caracteres Lotus Multibyte. Fax 10954 . Consultado el 6 de diciembre de 2016 .
- Soporte Lotus. "Notas del soporte: juegos de caracteres internacionales SMTP MTA" . IBM developerWorks . IBM . Archivado desde el original el 8 de diciembre de 2016 . Consultado el 8 de diciembre de 2016 .
- Los archivos de traducción de caracteres (.CTF) de Notes 2.xy los archivos de Country Language Service (.CLS) de Notes 3.0 y superior contienen información sobre la traducción de LMBCS a otras páginas de códigos [2] [3]
enlaces externos
- Berntrop-Bos, Lars (10 de julio de 2014). "Explosión del pasado: tablas LMBCS para Windows, OS / 2, Unix y Macintosh" . Archivado desde el original el 26 de noviembre de 2016 . Consultado el 26 de noviembre de 2016 .