stringtranslate.com

Conjunto de caracteres multibyte de Lotus

El Lotus Multi-Byte Character Set ( LMBCS ) es una codificación de caracteres multibyte patentada concebida originalmente en 1988 en Lotus Development Corporation con la colaboración de Bob Balaban y otros. [1] Creado aproximadamente al mismo tiempo y abordando algunos de los mismos problemas, LMBCS podría considerarse un desarrollo paralelo y una posible alternativa a Unicode . [1] Para lograr la 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 Lotus International Character Set (LICS) de 8 bits y el ASCII utilizado en versiones anteriores solo para DOS de Lotus 1-2-3 y Symphony . [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 los sistemas de escritura latino , [6] árabe , hebreo , griego y cirílico [6] , 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]

El punto de código 00 hex siempre se trata como un carácter NUL para garantizar la máxima compatibilidad del código con las bibliotecas de software existentes que tratan con cadenas terminadas en nulo [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 hex se asignan a códigos de uso privado con la forma F6xx hex durante la codificación para evitar el uso de bytes NUL, [7] y a los caracteres de control escapados, donde se agrega 20 hex a los caracteres de control C0 (pero no C1) después del byte inicial hexadecimal 0F . [7]

Los puntos de código 01 hex a 1F hex , que sirven como códigos de control en ASCII, se utilizan como bytes principales para cambiar la definición de los puntos de código por encima de 7F hex entre varios grupos de códigos (similar a las páginas de códigos ) y al mismo tiempo determinar una naturaleza de uno o varios bytes para el grupo de códigos correspondiente. [1]

Por ejemplo, el grupo de códigos 1 (con byte de grupo 01 hexadecimal ) [1] es casi idéntico a la página de códigos SBCS 850 , mientras que el grupo de códigos 16 (con byte de grupo 10 hexadecimal ) [1] es similar a la página de códigos MBCS japonesa 932. Por lo tanto, los caracteres multibyte 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 LMBCS optimizado o comprimido, se puede definir un grupo de códigos predeterminado o un código de grupo de optimización por aplicación o proceso (idealmente elegido de acuerdo con la mayor probabilidad de ocurrencia) [1] y debe comunicarse al código de interpretación de alguna manera (por ejemplo, especificando el nombre "LMBCS- n " correspondiente). [8] De este modo, se puede omitir el byte de grupo para estos caracteres. [1] Lotus 1-2-3 recupera el código de grupo de optimización del encabezado del archivo del archivo fuente correspondiente, [7] mientras que para Lotus Notes el código de grupo de optimización está fijado para que sea siempre 01 hex . [2] [7]

Conjunto de caracteres

Sin el byte de prefijo, los puntos de código 32 (20 hexadecimal ) a 127 (7F hexadecimal ) se interpretan de la siguiente manera (correspondientes a los códigos LMBCS 32 a 127):

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 ) se definen de acuerdo con la siguiente lista de excepciones (correspondiente a los códigos LMBCS 256 a 383):

 U+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 (griego DOS), 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]

 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 ) se definen de acuerdo con la siguiente lista de excepciones: [f]

Véase también

Notas

  1. ^ Lotus 1-2-3 Release 3.0 para DOS y versiones más nuevas están escritas en C.
  2. ^ ‐ (U+2010), ‑ (U+2011), ‒ (U+2012), – (U+2013)
  3. ^ abcdefghijklmnopqrstu vwxy 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.
  4. ^ abcdefghi Para compatibilidad con Lotus 1-2-3 versión 5.0 .
  5. ^ Unicode no define un glifo para el símbolo monetario de la corona (Krone también conocido como "Kr"), por lo tanto, esto apunta al hexadecimal F8FB en el Área de uso privado de Unicode (PUA).
  6. ^ ab Según la documentación, los puntos de código 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, que abarcaban únicamente los grupos 0 y 1.

Referencias

  1. ^ abcdefghijklm Balaban, Bob (2001). "Conjuntos de caracteres multilingües: qué son y cómo utilizarlos" (PDF) . Looseleaf Software, Inc. Archivado (PDF) del original el 25 de noviembre de 2016. Consultado el 25 de noviembre de 2016 .
  2. ^ abcdefghijklmnopqrstu vwxyz 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 multibyte 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 las Notas para los 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 donde el primer byte sea mayor que 0x1F, tiene un byte de grupo implícito de 0x01.
  3. ^ de Scherer, Markus; Murray, Brendan (2000-06-02). "Re: MS Excel, Lotus 123 y Unicode". Archivado desde el original el 2016-12-06 . Consultado el 2016-12-06 .
  4. ^ "Kapitel 4. Kompatibilität mit anderen 1-2-3 Versionen - Zeichensätze" [Capítulo 4. Compatibilidad con otras versiones 1-2-3 - Conjuntos de caracteres]. Lotus 1-2-3 Versión 3.1 Upgrader's Handbuch [ Manual del actualizador ] (en alemán) (1 ed.). Cambridge, MA, EE.UU.: Lotus Development Corporation . 1989. págs. 4-10–4-11. 302173.
  5. ^ ab Kamenz, Alfred; Vonhoegen, Helmut (1992). Das große Buch zu Lotus 1-2-3 für DOS (en alemán) (1 ed.). Datos Becker . págs. 131–132, 357–358. ISBN 3-89011-375-3.
  6. ^ abcd Lotus – Inside Notes – The Architecture of Notes and the Domino Server (PDF) . Lotus Development Corporation . 2000. Archivado (PDF) del original el 2016-12-12 . Consultado el 2016-12-12 . […] Notes utiliza un único conjunto de caracteres, el Lotus Multibyte Character Set (LMBCS), para codificar todos los datos de texto utilizados internamente por sus programas. Siempre que Notes introduce por primera vez texto codificado en un conjunto de caracteres distinto de LMBCS, traduce el texto en una cadena LMBCS y, siempre que debe generar texto en un conjunto de caracteres distinto de LMBCS, traduce la cadena LMBCS interna al conjunto de caracteres adecuado. Debido a que todo el texto está formateado internamente por LMBCS, todas las operaciones de procesamiento de texto […] se realizan de una sola manera. LMBCS utiliza hasta tres bytes en la memoria para representar un único carácter de texto […]
  7. ^ abcdefghijklmnopqrstu vwxyz 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) [9 de febrero de 2000]. "ucnv_lmb.c". Componentes internacionales para Unicode . International Business Machines (IBM).
  8. ^ Batutis, Edward J. (3 de noviembre de 2001). "Re: tipos de convertidores". Componentes internacionales para Unicode (ICU) . Archivado desde el original el 6 de diciembre de 2016. Consultado el 6 de diciembre de 2016 .
  9. ^ abcdefghij "LMBCS" (en japonés). 3 de febrero de 2009. Archivado desde el original el 26 de noviembre de 2016. Consultado el 26 de noviembre de 2016 .[1]
  10. ^ ab "Apéndice 2. El conjunto de caracteres multibyte de Lotus (LMBCS)" [Apéndice 2. El conjunto de caracteres multibyte de Lotus (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.ª edición). Cambridge, MA, EE. UU.: Lotus Development Corporation . 1989. págs. A2-1–A2-13. 302168.
  11. ^ abc "lmb-excp.ucm". GitHub . 10 de febrero de 2000.

Lectura adicional

Enlaces externos