stringtranslate.com

Página de código 949 (IBM)

La página de códigos IBM 949 (IBM-949) es una codificación de caracteres que IBM ha utilizado para representar texto en coreano en computadoras. Es una codificación de ancho variable que representa los caracteres del código Wansung definido por el estándar surcoreano KS X 1001 en un formato compatible con EUC-KR , pero agrega extensiones IBM para hanja adicional, sílabas Hangul precompuestas adicionales y caracteres definidos por el usuario .

Los bytes 0x00 a 0x7F se utilizan para caracteres KS X 1003 ( ISO 646 : KR) de un solo byte, un conjunto similar al ASCII pero con un signo won en lugar de una barra invertida. Los bytes 0x80 a 0x84 se utilizan para caracteres de extensión de un solo byte de IBM. Los bytes iniciales 0x8F a 0xA0 se utilizan para caracteres de extensión de doble byte de IBM. Los bytes iniciales 0xA1 a 0xFE se utilizan para código Wansung ( caracteres KS X 1001 en formato EUC-KR, doble byte), pero con algo de espacio sin usar abierto para uso definido por el usuario.

Aunque a veces se los denomina "cp949", IBM-949 es diferente de la página de códigos 949 de Windows (IBM-1363), que es el código Hangul unificado de Microsoft, una extensión diferente de EUC-KR. Tampoco debe confundirse con la implementación de IBM del EUC-KR simple ( IBM-970 ). La página de códigos 949 en OS/2 es la página de códigos de IBM; sin embargo, existe un parche de terceros para cambiar esto. [1]

Terminología y etiquetado de codificación

Tanto IBM-949 como el código Hangul unificado (Windows-949) se conocen como "página de códigos 949" (o "cp949"), aunque solo comparten el subconjunto EUC-KR. Ninguno tiene una etiqueta registrada por la IANA para identificarlo. Aunque UHC está incluido en el estándar de codificación WHATWG , [2] con etiquetas que incluyen "windows-949", [3] IBM-949 no lo está. Por lo tanto, IBM-949 no está permitido en HTML5 .

Aunque el significado de la etiqueta "ibm-949" (y, a la inversa, "windows-949" y "ms949") es inequívoco cuando se admiten estas etiquetas, la interpretación de las etiquetas de codificación "949" y "cp949" varía en consecuencia entre implementaciones. Por ejemplo, International Components for Unicode utiliza "cp949", "949", "ibm-949" y "x-IBM949" para referirse a IBM-949, [4] y, además, las etiquetas "cp949c", "ibm-949c" y "x-IBM949C" para referirse a una variante que utiliza asignaciones ASCII sin modificar para 0x20–7E (lo que da como resultado asignaciones duplicadas para la barra invertida), [5] mientras que (de las etiquetas que incorporan el número de página de códigos 949) solo "ms949" y "windows-949" se asignan a UHC. [6] Esto contrasta con Python , que reconoce tanto "cp949" como "949" (además de los más explícitos "ms949" y "uhc", pero no "windows-949") como etiquetas para UHC, y no incluye un códec IBM-949. [7] La ​​página de códigos 949 utilizada por las versiones en coreano de OS/2 es la página de códigos de IBM; para agregar soporte para todo el conjunto Unicode de sílabas coreanas, existe un parche de terceros para reemplazarlo con la página de códigos de Microsoft. [1]

IBM-949 es una codificación de ancho variable definida como la combinación de dos páginas de códigos de ancho fijo, la página de códigos 1088 de un solo byte y la página de códigos 951 de doble byte . [8] [9] [10]

Historia

Una versión de la página de códigos 951 (un código DBCS-PC, es decir, de doble byte, no EUC, no EBCDIC ), el componente de doble byte para IBM-949, se define en la revisión de septiembre de 1992 de la Especificación corporativa de IBM CH 3-3220-125, junto con la página de códigos 834 (un código DBCS-Host, es decir, de doble byte, EBCDIC), que es el componente de doble byte de la página de códigos 933. [ 11] Esta versión de la página de códigos 949/951 consideró que todo el rango de bytes iniciales 0x8F–A0 era una región definida por el usuario, e incluyó solo asignaciones Wansung estándar y áreas definidas por el usuario, por lo que no incluyó algunos caracteres que sí incluía la página de códigos 933/834. [11] Algunas versiones posteriores, como la implementada por International Components for Unicode (ICU), reducen la región definida por el usuario para incluir estos caracteres como extensiones. [12]

La revisión anterior de octubre de 1989 de CH 3-3220-125 había definido en cambio la página de códigos 926 como su código DBCS-PC, que codificaba los mismos caracteres que IBM-834 en un diseño diferente tanto de IBM-951 como de IBM-834, que tenían un rango de bytes iniciales diferente y no eran una extensión EUC-KR. [11] IBM-926 se combinó con la página de códigos 891 o la página de códigos 1040 (respectivamente, código Hangul de N bytes de 8 bits y una extensión del mismo; compare cómo Shift JIS extiende JIS X 0201 de 8 bits ) para formar IBM-934 o IBM-944 respectivamente. [13] [14]

Las páginas de códigos 944/926 han quedado obsoletas en favor de IBM-949. La revisión de 1992 designa la página de códigos 926 como "restringida" ("limitada al entorno particular para el que [está] registrada") y no proporciona su diagrama ni sus asignaciones con respecto a las otras páginas de códigos, [11] y el CCSID 944 se clasifica como "coexistencia y migración" [14] (en contraste con "interoperable" para el CCSID 949). [8] Los Componentes Internacionales para Unicode incluyen asignaciones Unicode para IBM-949 [4] [12] e IBM-933, pero su asignación a IBM-944 se eliminó en 2001. [15]

Códigos de un solo byte

  Diferencias con la página de códigos 437 (para 0x00–7F) o EUC-KR (para 0x80–FF)

Códigos de doble byte

Bytes iniciales 0x8F–99, 0xC9, 0xFE (rangos definidos por el usuario)

IBM-949 está diseñado para soportar un máximo de 1880 UDC (caracteres definidos por el usuario), [8] incluyendo las filas definidas por el usuario (bytes iniciales 0xC9 y 0xFE) del plano Wansung, y rangos fuera del plano Wansung. En esta versión, los bytes iniciales 0x8F–A0 contienen un máximo de 1692 UDC, y los bytes iniciales 0xC9 y 0xFE contienen un máximo de 94 cada uno (es decir, con bytes finales 0xA1–FE). [11] Sin embargo, cuando se implementan las extensiones para soportar todo el repertorio de doble byte de IBM-933 , utilizan los bytes iniciales 0x9A–A0, lo que resulta en un número máximo menor de caracteres para la definición del usuario. [4] [12]

Cuando se asignan a Unicode, 0xC9A1–C9FE (entre los rangos de sílabas y hanja) se asignan a los puntos de código de área de uso privado de Unicode U+E000–E05D, mientras que 0xFEA1–FEFE (entre el final del rango hanja y el final del plano) se asignan a U+E05E–E0BB. Fuera del plano Wansung, 0x8FA0–9AA5 (donde el segundo byte está en el rango 0xA1–FE) se asignan a los puntos de código de área de uso privado U+E0BC–E4CA. [4] El último de estos rangos corta en el comienzo de la fila 0x9A (que se muestra a continuación).

En conjunto, estos rangos de uso privado cubren los puntos de código U+E000–E4CA, lo que permite mapear 1227 UDC desde IBM-949 a Unicode. [12] IBM utiliza el rango de área de uso privado independiente U+F843–F86E para mapear algunos caracteres dentro del rango hanja extendido. [12] Esto sigue las recomendaciones tempranas del Consorcio Unicode de que los caracteres corporativos se asignen desde U+F8FF hacia abajo y los caracteres definidos por el usuario se asignen desde U+E000 hacia arriba, [18] y es parte de un esquema de área de uso privado corporativo más grande que está definido internamente por IBM y utiliza el rango U+F83D–F8FF. [19] [20]

Bytes iniciales 0x9A–9D (símbolos extendidos y hanja)

Según la especificación de 1992, todo este rango está definido por el usuario. [11] Sin embargo, tal como se implementó en el códec aportado a ICU por IBM, 0x9AA1 a 0x9AA5 son el final del rango definido por el usuario. El resto de este rango incluye algunos caracteres no hangul incluidos en la página de códigos 933 pero no en el código Wansung. 0x9AA6 a 0x9AAB contienen símbolos técnicos o matemáticos diversos. El resto contiene hanja adicional a los incluidos en KS X 1001 , aunque algunos están asignados por IBM al Área de uso privado. [12]

Bytes iniciales 0x9E–A0 (sílabas hanja y hangul extendidas)

Según la especificación de 1992, todo este rango está definido por el usuario. [11] Tal como se implementó en el códec aportado a ICU por IBM, 0x9EA1 a 0x9EAC contienen el resto del hanja extendido. El resto del rango contiene algunas sílabas Hangul adicionales que no están disponibles en forma precompuesta en EUC-KR puro. A diferencia del Código Hangul Unificado, esto es insuficiente para admitir todas las sílabas Johab no parciales ausentes en el código Wansung. [12]

Entre estos, los más importantes son 뢔 (0x9EFC), 쌰 (0x9FE6), 쎼 (0x9FED), 쓔 (0x9FF3) y 쬬 (0xA0C1), que corresponden a los comienzos de los caracteres Wansung estándar 뢨, 썅, 쏀, 쓩 y 쭁 respectivamente, cuando se ingresan parcialmente en un editor de métodos de entrada .

Bytes principales 0xA1–C8, 0xCA–FD (Wansung estándar)

Véase también

Notas al pie

  1. ^ Esto no está incluido para la compatibilidad con IPA. En cambio, en la página de códigos 933, SO 0x4160 es un signo de no igual que se muestra con una barra, mientras que IBM-933 SO 0x418D se muestra con una barra invertida (es decir, =⃥). [11] Aunque es IBM-933 SO 0x4160 el que se asigna al GCGID de no igual habitual SA540080 ( ancho completo de SA540000), es IBM-933 SO 0x418D el que se asigna a EUC-KR e IBM-949 0xA1C1, [11] debido al glifo de referencia para el signo de no igual en KS C 5601-1987 que también lo muestra con una barra invertida. [23] Por lo tanto, U+2260, que está asignado a EUC-KR y por lo tanto a IBM-949 0xA1C1, está asignado a IBM-933 SO 0x418D, dejando a IBM-933 SO 0x4160 (y por lo tanto a IBM-949 0x9AA6) para ser asignado al carácter visualmente similar en U+01C2. [24]
  2. ^ La asignación de IBM es U+5231 刱, pero el glifo en el documento de IBM CH 3-3220-125 1992-09 es más cercano a U+5259 剙 (código de host 62D5). [11]

Referencias

  1. ^ de Borgendale, Ken. "Herramientas de visualización de teclado y página de códigos de OS/2".
  2. ^ van Kesteren, Anne , "5. Índices (§ índice EUC-KR)", Estándar de codificación , WHATWG, Esto coincide con el estándar KS X 1001 y el Código Hangul unificado, más comúnmente conocidos juntos como Página de códigos de Windows 949.
  3. ^ van Kesteren, Ana . "4.2. Nombres y etiquetas". Estándar de codificación . QUÉ.
  4. ^ abcde "Explorador de convertidores: ibm-949_P110-1999 (alias x-IBM949)", Componentes internacionales para Unicode , Consorcio Unicode
  5. ^ ab "Explorador de convertidores: ibm-949_P11A-1999 (alias x-IBM949C)", Componentes internacionales para Unicode , Consorcio UnicodeEsta es la versión basada en ASCII del IBM-949.
  6. ^ "windows-949-2000", Explorador de convertidores , Componentes internacionales para Unicode
  7. ^ "códecs — Registro de códecs y clases base § Codificaciones estándar". Documentación de Python 3.7.2 . Python Software Foundation.
  8. ^ abc "Identificadores de conjuntos de caracteres codificados: CCSID 949". IBM Globalization . IBM . Archivado desde el original el 29 de noviembre de 2014.
  9. ^ "Documento informativo del CCSID 1088". Archivado desde el original el 26 de marzo de 2016.
  10. ^ "Documento informativo de la página de códigos 951". Archivado desde el original el 16 de enero de 2017.
  11. ^ abcdefghijk "Conjunto de caracteres gráficos coreanos de IBM: DBCS-Host y DBCS-PC" (PDF) . IBM . 2001 [1992]. CH 3-3220-125 1992-09.
  12. ^ abcdefghij Componentes internacionales para Unicode (ICU), ibm-949_P110-1999.ucm, 3 de diciembre de 2002
  13. ^ "Identificadores de conjuntos de caracteres codificados: CCSID 934". IBM Globalization . IBM . Archivado desde el original el 2 de diciembre de 2014.
  14. ^ ab "Identificadores de conjuntos de caracteres codificados: CCSID 944". IBM Globalization . IBM . Archivado desde el original el 1 de diciembre de 2014.
  15. ^ Viswanadha, Ram (1 de noviembre de 2001). "ICU-1281 Eliminar archivos ucm no deseados". Componentes internacionales para Unicode .
  16. ^ Página de códigos CPGID 01088 (pdf) (PDF) , IBM
  17. ^ Página de códigos CPGID 01088 (txt), IBM
  18. ^ "2.0: Cambios en Unicode 1.0" (PDF) . El estándar Unicode, versión 1.1 . Consorcio Unicode . págs. 3–4. UTR #4.
  19. ^ ab "CPGID 01449: IBM default PUA". IBM Globalization: Code page identifiers . IBM . Archivado desde el original el 16 de septiembre de 2015. IBM ha designado 195 posiciones desde U+F83D hasta U+F8FF para su uso como zona corporativa de IBM y tiene la intención de utilizarlas de manera consistente dentro de IBM siempre que sea necesario mantener la integridad de ida y vuelta de los caracteres de IBM.
  20. ^ IBM (1997). unicode.nam: permite especificar los caracteres Unicode utilizando nombres similares a IBM o PostScript .(Incluido con Borgendale, Ken, OS/2 Codepage y herramientas de visualización del teclado)
  21. ^ "ibm-933_P110-1995.ucm". Componentes internacionales para Unicode .
  22. ^ Los hanja asignados al Área de Uso Privado se identifican a partir de tablas de códigos. El documento IBM CH 3-3220-125 1992-09 proporciona tablas de códigos para las páginas de códigos utilizadas como componentes de doble byte para la página de códigos 933 y una versión anterior de la página de códigos 949 sin estas extensiones; sin embargo, los hanja de esta sección corresponden a (y están en el mismo orden que) el subconjunto de la tabla 7 para el que no se incluye un "Código de PC". [11] Las asignaciones del Área de Uso Privado Corporativo también están coordinadas con otras páginas de códigos, [19] incluida la página de códigos 933, [21] que se puede utilizar para obtener el "Código de host" para una asignación dada del Área de Uso Privado Corporativo.
  23. ^ Oficina de Normas de Corea (1988-10-01). Conjunto de caracteres gráficos coreanos para el intercambio de información (PDF) . ITSCJ/ IPSJ . ISO-IR -149.
  24. ^ "ibm-933_P110-1995 (bytes iniciales 0E41)". Explorador de convertidores . Componentes internacionales para Unicode .