La página de códigos 949 de IBM (IBM-949) es una codificación de caracteres que IBM ha utilizado para representar texto en coreano en ordenadores. Se trata de 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 añade extensiones de IBM para caracteres hanja adicionales, sílabas Hangul precompuestas adicionales y caracteres definidos por el usuario .
Dados los 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 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 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 se les 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 distinta de EUC-KR. Tampoco debe confundirse con la implementación de IBM de EUC-KR estándar ( 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 codificación de etiquetas
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 estandarizada registrada por la IANA para identificarlo. Si bien 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 viceversa "windows-949" y "ms949") es inequívoco donde se admiten estas etiquetas, la interpretación de las etiquetas de codificación "949" y "cp949" varía consecuentemente entre implementaciones. Por ejemplo, International Components for Unicode utiliza "cp949", "949", "ibm-949" y "x-IBM949" para referirse a IBM-949, [ 4 ] y adicionalmente 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" 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 reemplazarla 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 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ódigo 951 (un código DBCS-PC, es decir, código 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ódigo 834 (un código DBCS-Host, es decir, código EBCDIC de doble byte), que es el componente de doble byte de la página de código 933. [ 11 ] Esta versión de la página de código 949/951 consideraba todo el rango de bytes iniciales 0x8F–A0 como 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 sí incluía la página de código 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 la página de código 926 como su código DBCS-PC, que codificaba los mismos caracteres que IBM-834 en una disposición distinta tanto de IBM-951 como de IBM-834, que tenía 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ódigo 891 o la página de código 1040 (respectivamente, el código Hangul de 8 bits y N bytes y una extensión del mismo; compárese cómo Shift JIS extiende el JIS X 0201 de 8 bits ) para formar IBM-934 o IBM-944 respectivamente. [ 13 ] [ 14 ]
Las páginas de códigos 944/926 están ahora 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 tabla ni asignaciones de las otras páginas de códigos, [ 11 ] y CCSID 944 se clasifica como "coexistencia y migración" [ 14 ] (en contraste con "interoperable" para CCSID 949). [ 8 ] Los Componentes Internacionales para Unicode incluyen asignaciones Unicode para IBM-949 [ 4 ] [ 12 ] e IBM-933, pero su asignación para IBM-944 se eliminó en 2001. [ 15 ]
Códigos de un solo byte
Códigos de doble byte
Bytes de inicio 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 ] 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 admitir 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 disponibles para la definición del usuario. [ 4 ] [ 12 ]
Cuando se asignan a Unicode, 0xC9A1–C9FE (entre los rangos de sílaba 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 de hanja y el final del plano) se asignan a U+E05E–E0BB. Fuera del plano de 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 que 1227 UDC se asignen de IBM-949 a Unicode. [ 12 ] El rango de área de uso privado separado U+F843–F86E es utilizado por IBM para asignar algunos caracteres dentro del rango extendido de hanja. [ 12 ] Esto sigue las recomendaciones iniciales 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 amplio 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, todo este rango es definido por el usuario. [ 11 ] Sin embargo, tal como se implementó en el códec aportado a ICU por IBM, de 0x9AA1 a 0x9AA5 es 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. De 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 algunos son asignados por IBM al Área de Uso Privado. [ 12 ]
Bytes iniciales 0x9E–A0 (sílabas extendidas de hanja y hangul)
Según la especificación de 1992, todo este rango es 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 ellos destacan 뢔 (0x9EFC), 쌰 (0x9FE6), 쎼 (0x9FED), 쓔 (0x9FF3) y 쬬 (0xA0C1), que corresponden a los comienzos de los caracteres Wansung estándar 뢨, 썅, 쏀, 쓩 y 쭁 respectivamente, cuando se introducen parcialmente en un editor de métodos de entrada .
Bytes de plomo 0xA1–C8, 0xCA–FD (Wansung estándar)
Véase también
Notas a pie de página
- ↑ Esto no está incluido para el soporte de IPA. Más bien, en la página de código 933, SO 0x4160 es un signo de desigualdad que se muestra con una barra, mientras que IBM-933 SO 0x418D es uno que se muestra con una barra invertida (es decir =⃥). [ 11 ] Aunque es IBM-933 SO 0x4160 el que se asigna al GCGID de desigualdad habitual SA540080 ( ancho completo de SA540000), es IBM-933 SO 0x418D el que se asigna a EUC-KR e IBM-949 0xA1C1, [ 11 ] debido a que el glifo de referencia para el signo de desigualdad en KS C 5601-1987 también lo muestra con una barra invertida. [ 23 ] Por lo tanto, U+2260, que se asigna a EUC-KR y por lo tanto a IBM-949 0xA1C1, se asigna a IBM-933 SO 0x418D, dejando IBM-933 SO 0x4160 (y por lo tanto a IBM-949 0x9AA6) para ser asignado al carácter visualmente similar en U+01C2. [ 24 ]
- ↑ La asignación 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 2 Borgendale, Ken. "Herramientas de visualización de teclado y página de códigos de OS/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 la página de códigos de Windows 949.
- ↑ van Kesteren, Ana . «4.2. Nombres y etiquetas» . Estándar de codificación . QUÉ.
- 1 2 3 4 5 "Explorador de convertidores: ibm-949_P110-1999 (alias x-IBM949)" , Componentes internacionales para Unicode , Consorcio Unicode
- 1 2 "Explorador de convertidores: ibm-949_P11A-1999 (alias x-IBM949C)" , Componentes internacionales para Unicode , Consorcio UnicodeEsta es la versión basada en ASCII de IBM-949.
- ↑ "windows-949-2000" , Converter Explorer , Componentes internacionales para Unicode
- ↑ "códecs — Registro de códecs y clases base § Codificaciones estándar" . Documentación de Python 3.7.2 . Python Software Foundation.
- 1 2 3 "Identificadores de conjunto de caracteres codificados: CCSID 949" . Globalización de IBM . IBM . Archivado del original el 29/11/2014.
- ↑ "Documento informativo CCSID 1088" . Archivado del original el 26 de marzo de 2016.
- ↑ "Documento informativo de la página 951 del código" . Archivado del original el 16 de enero de 2017.
- 1 2 3 4 5 6 7 8 9 10 11 "Conjunto de caracteres gráficos coreanos de IBM: DBCS-Host y DBCS-PC" (PDF) . IBM . 2001 [1992]. CH 3-3220-125 1992-09.
- 1 2 3 4 5 6 7 8 9 10 Componentes internacionales para Unicode (ICU), ibm-949_P110-1999.ucm , 3 de diciembre de 2002
- ↑ "Identificadores de conjuntos de caracteres codificados: CCSID 934" . Globalización de IBM . IBM . Archivado del original el 2 de diciembre de 2014.
- 1 2 "Identificadores de conjunto de caracteres codificados: CCSID 944" . Globalización de IBM . IBM . Archivado del original el 1 de diciembre de 2014.
- ↑ Viswanadha, Ram (2001-11-01). "ICU-1281 Eliminar archivos ucm no deseados" . Componentes internacionales para Unicode .
- ↑ Página de códigos CPGID 01088 (pdf) (PDF) , IBM
- ↑ Página de códigos CPGID 01088 (txt) , IBM
- ↑ "2.0: Cambios en Unicode 1.0" (PDF) . El estándar Unicode, versión 1.1 . Consorcio Unicode . págs. 3–4 . UTR #4.
- 1 2 "CPGID 01449: PUA predeterminado de IBM" . Globalización de IBM: identificadores de página de códigos . IBM . Archivado del 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 forma consistente dentro de IBM siempre que sea necesario mantener la integridad de ida y vuelta de los caracteres de IBM.
- ↑ IBM (1997). unicode.nam: Permite especificar los caracteres Unicode utilizando nombres similares a los de IBM o PostScript .(Incluido con Borgendale, Ken, Herramientas de visualización de teclado y página de códigos OS/2))
- ↑ "ibm-933_P110-1995.ucm" . Componentes internacionales para Unicode .
- ↑ Los hanja asignados al Área de Uso Privado se identifican 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 a (y están en el mismo orden que) el subconjunto de la tabla 7 para el cual no se enumera un "Código PC". [ 11 ] Las asignaciones del Área de Uso Privado Corporativa 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 de Área de Uso Privado Corporativa dada.
- ↑ 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.
- ↑ "ibm-933_P110-1995 (bytes de inicio 0E41)" . Explorador de convertidores . Componentes internacionales para Unicode .
- Conjuntos de caracteres
- Codificaciones de lenguas asiáticas