stringtranslate.com

Página de códigos 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 idioma coreano en las 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 de IBM para hanja adicionales, sílabas Hangul precompuestas adicionales y definidas por el usuario. caracteres .

Al proporcionar valores en hexadecimal , los bytes 0x00 a 0x7F se utilizan para caracteres KS X 1003 ( ISO 646 : KR) de un solo byte, un conjunto similar a ASCII pero con un signo ganado 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 el código Wansung ( caracteres KS X 1001 en formato EUC-KR, doble byte), pero con algo de espacio no utilizado abierto para uso definido por el usuario.

Aunque a veces ambos se denominan "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 de 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 Unified Hangul Code (Windows-949) se conocen como "página de códigos 949" (o "cp949") aunque sólo comparten el subconjunto EUC-KR. Tampoco tiene una etiqueta estandarizada 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. 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") no es ambiguo 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, Componentes Internacionales para 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 resulta en 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" están asignados 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 No incluye un códec IBM-949. [7] La ​​página de códigos 949 utilizada por las versiones en idioma 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 de un solo byte 1088 y la página de códigos de doble byte 951 . [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, EBCDIC de doble byte), 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 consideraba que todo el rango de bytes iniciales 0x8F-A0 era una región definida por el usuario e incluía solo asignaciones estándar de Wansung y áreas definidas por el usuario, por lo que no incluía algunos caracteres que la página de códigos 933/ 834 incluidos. [11] Algunas versiones posteriores, como la implementada por Componentes Internacionales para 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 de IBM-951 e IBM-834, que tenían un rango de bytes iniciales diferente y no era 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 ahora están en desuso 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 cual [está] registrada") y no proporciona su tabla ni asignaciones de las otras páginas de códigos, [11] y el CCSID 944 está categorizado como "coexistencia y migración" [14] (contraste "interoperable" para CCSID 949). [8] Componentes internacionales para Unicode incluye asignaciones Unicode para IBM-949 [4] [12] e IBM-933, pero su asignación 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 admitir un máximo de 1880 UDC (caracteres definidos por el usuario), [8] incluidas 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 los bytes finales 0xA1–FE). [11] Sin embargo, cuando se implementan las extensiones para admitir todo el repertorio de doble byte de IBM-933 , utilizan bytes iniciales 0x9A–A0, lo que da como resultado un número máximo menor de caracteres que quedan para la definición del usuario. [4] [12]

Cuando se asigna a Unicode, 0xC9A1–C9FE (entre los rangos de sílaba y hanja) se asignan a los puntos de código del área de uso privado Unicode U+E000–E05D, mientras que 0xFEA1–FEFE (entre el final del rango de hanja y el final del plano ) están asignados 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 el inicio 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 asignar 1227 UDC desde IBM-949 a Unicode. [12] IBM utiliza el rango de área de uso privado separado U+F843–F86E para mapear algunos caracteres dentro del rango extendido de hanja. [12] Esto sigue las primeras recomendaciones 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 es 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, toda esta gama está definida 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 que no son Hangul incluidos en la página de códigos 933 pero no en el código Wansung. 0x9AA6 a 0x9AAB contienen diversos símbolos técnicos o matemáticos. El resto contiene hanja adicionales a los incluidos en KS X 1001 , aunque IBM asigna algunos al Área de uso privado. [12]

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

Según la especificación de 1992, toda esta gama está definida 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 de la gama 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 ellos se encuentran importantes 뢔 (0x9EFC), 쌰 (0x9FE6), 쎼 (0x9FED), 쓔 (0x9FF3) y 쬬 (0xA0C1), que corresponden al comienzo de los caracteres estándar de Wansung 뢨, 썅, 쏀, 쓩 y 쭁 respectivamente. , cuando se ingresa parcialmente en un editor de métodos de entrada .

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

Ver también

Notas a pie de página

  1. ^ Esto no está incluido para el soporte de IPA. Más bien, en la página de códigos 933, SO 0x4160 es un signo no igual que se muestra con una barra diagonal, mientras que IBM-933 SO 0x418D se muestra con una barra invertida (es decir, =⃥). [11] Aunque es IBM-933 SO 0x4160 el que está asignado al habitual GCGID SA540080 no igual ( ancho completo de SA540000), es IBM-933 SO 0x418D el que está asignado 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, IBM-949 0xA1C1, se asigna a IBM-933 SO 0x418D, dejando IBM-933 SO 0x4160 (y, por lo tanto, IBM-949 0x9AA6) para asignar a el personaje visualmente similar en U+01C2. [24]
  2. ^ El mapeo de IBM es U+5231 刱, pero el glifo en el documento de IBM CH 3-3220-125 1992-09 está más cerca de U+5259 剙 (código de host 62D5). [11]

Referencias

  1. ^ ab 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, 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 "Converter Explorer: ibm-949_P110-1999 (alias x-IBM949)", Componentes internacionales para Unicode , Unicode Consortium
  5. ^ ab "Converter Explorer: ibm-949_P11A-1999 (alias x-IBM949C)", Componentes internacionales para Unicode , Unicode Consortium. Esta es la versión basada en ASCII de IBM-949.
  6. ^ "windows-949-2000", Converter Explorer , componentes internacionales para Unicode
  7. ^ "códecs: registro de códecs y clases base § Codificaciones estándar". Documentación de Python 3.7.2 . Fundación de software Python.
  8. ^ abc "Identificadores de juego de caracteres codificados: CCSID 949". Globalización de IBM . IBM . Archivado desde el original el 29 de noviembre de 2014.
  9. ^ "Documento informativo 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 juego de caracteres codificados: CCSID 934". Globalización de IBM . IBM . Archivado desde el original el 2 de diciembre de 2014.
  14. ^ ab "Identificadores de juego de caracteres codificados: CCSID 944". Globalización de IBM . 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: PUA predeterminada de IBM". Globalización de IBM: identificadores de página de códigos . IBM . Archivado desde el original el 16 de septiembre de 2015. IBM ha designado 195 posiciones de U+F83D a U+F8FF para su uso como zona corporativa de IBM y tiene la intención de usarlas consistentemente 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 de teclado)
  21. ^ "ibm-933_P110-1995.ucm". Componentes internacionales para Unicode .
  22. ^ El área de uso privado mapeada hanja se identifica a partir de tablas de códigos. El documento de 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 en esta sección corresponden (y están en el mismo orden) al subconjunto de la tabla 7 para el cual no aparece un "Código 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 del Área de uso privado corporativo determinada.
  23. ^ Oficina de Normas de Corea (1 de octubre de 1988). 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 .