stringtranslate.com

GB 2312

GB/T 2312-1980 es un conjunto de caracteres oficiales clavede la República Popular China , utilizado para caracteres chinos simplificados . GB2312 es el nombre registrado en Internet para EUC-CN , que es su forma codificada habitual. GB se refiere a los estándares Guobiao (国家标准), mientras que elsufijo T (推荐; tuījiàn ; 'recomendación') denota un estándar no obligatorio. [1]

GB/T 2312-1980 fue originalmente un estándar nacional obligatorio designado GB 2312-1980 . Sin embargo, a raíz de un Boletín de Estándares Nacionales de la República Popular China en 2017, GB 2312 ya no es obligatorio y su código estándar se modificó a GB/T 2312-1980 . [2] GB/T 2312-1980 ha sido reemplazado por GBK y GB 18030 , que incluyen caracteres adicionales, pero GB/T 2312 sigue siendo de uso generalizado como un subconjunto de esas codificaciones.

A partir de septiembre de 2022 , GB2312 es la segunda codificación más popular servida desde China y territorios (después de UTF-8 ), y el 5,5 % de los servidores web que sirven una página la declaran. [3] A nivel mundial, GB2312 se declara en el 0,1 % de todas las páginas web. [4] Sin embargo, todos los navegadores web principales decodifican los documentos marcados con GB2312 como si estuvieran marcados con la codificación GBK de superconjunto, excepto Safari y Edge en la etiqueta GB_2312. [5]

Existe un conjunto de caracteres análogo conocido como Código GB/T 12345 de ideogramas chinos para el intercambio de información , que complementa el GB/T 2312 con formas de caracteres tradicionales al reemplazar formas simplificadas en su código qūwèi y algunos 62 caracteres suplementarios adicionales. [6] [7] Las fuentes codificadas en GB a menudo vienen en pares, una con el conjunto de caracteres GB/T 2312 (simplificado) y la otra con el conjunto de caracteres GB/T 12345 (tradicional). Existen más conjuntos de codificación suplementarios GB que complementan a GB/T 2312, incluido el Código de ideogramas chinos GB/T 7589 para el intercambio de información (el segundo conjunto suplementario) y el Código de ideogramas chinos GB/T 7590 para el intercambio de información (el cuarto conjunto suplementario ) que proporciona [caracteres variantes chinos] adicionales en el mismo formato de codificación qūwèi (utilizado posteriormente en ISO-2022-CN), pero no tiene relación con los caracteres codificados en GB/T 2312.

Rango de caracteres en filas

Aunque la norma GB/T 2312 cubre más del 99,99 % del uso de textos chinos contemporáneos, [8] los textos históricos y muchos nombres quedan fuera del alcance. La antigua norma GB 2312 incluye 6763 caracteres chinos (en dos niveles: el primero está organizado por lectura, el segundo por radical y luego por número de trazos), junto con símbolos y puntuación, kana japonés , los alfabetos griego y cirílico , Zhuyin y un conjunto de letras pinyin de doble byte con marcas de tono. En la versión posterior GB/T 2312-1980, hay 7445 letras.

Los caracteres en GB/T 2312 están dispuestos en una cuadrícula de 94×94 (como en ISO 2022 ), y el punto de código de dos bytes de cada carácter se expresa en la forma qūwèi (区位), que especifica una fila (; ) y la posición del carácter dentro de la fila (celda;; wèi ). (Esta estructura es la misma que utilizan otros estándares de conjuntos de caracteres CJK nacionales basados ​​en ISO-2022 ; compárese con kuten ). Por ejemplo, el carácter "外" (que significa: extranjero) se encuentra en la fila 45, posición 66, [9] por lo que su código qūwèi es 45-66.

Las filas (numeradas del 1 al 94) contienen los siguientes caracteres:

Las filas 10 a 15 y 88 a 94 no están asignadas.

Para GB/T 2312-1980, contiene 682 signos y 6763 caracteres chinos.

Codificaciones de GB/T 2312

EUC-CN

EUC-CN se utiliza a menudo como codificación de caracteres (es decir, para almacenamiento externo) en programas que trabajan con GB/T 2312, manteniendo así la compatibilidad con ASCII . Se utilizan dos bytes para representar cada carácter que no se encuentra en ASCII . El valor del primer byte es de 0xA1–0xF7(161–247), mientras que el valor del segundo byte es de 0xA1–0xFE(161–254). Dado que todos estos rangos están más allá de ASCII, como UTF-8, es posible comprobar si un byte es parte de una construcción de varios bytes cuando se utiliza EUC-CN, pero no si un byte es el primero o el último.

En comparación con UTF-8 , GB/T 2312 (ya sea nativo o codificado en EUC-CN) es más eficiente en términos de almacenamiento: mientras que UTF-8 utiliza tres bytes [a] por ideograma CJK , GB/T 2312 solo utiliza dos. Sin embargo, GB/T 2312 no cubre tantos ideogramas como Unicode.

Para asignar los puntos de código qūwèi a bytes EUC, agregue 160 ( 0xA0) tanto al número de fila (o qū, 区) como al número de celda/columna ( diez o wèi, 位). El resultado de la suma al número de fila del punto de código formará el byte alto, y el resultado de la suma al número de celda del punto de código formará el byte bajo.

Por ejemplo, para codificar el carácter "外" en la celda qūwèi 45-66, el byte alto utilizará el número de fila 45: 45+160=205= 0xCD, y el byte bajo provendrá de la celda número 66: 66+160=226= 0xE2. Por lo tanto, la codificación completa es <CD E2>. [10] [11]

ISO-2022-CN

ISO-2022-CN es otra forma de codificación de GB/T 2312, que también es la codificación especificada en la documentación oficial. Esta codificación hace referencia al estándar ISO-2022 , que también utiliza dos bytes para codificar caracteres que no se encuentran en ASCII. Sin embargo, en lugar de utilizar la región extendida de ASCII, ISO-2022 utiliza el mismo rango de bytes que ASCII: el valor del primer byte es de 0x21–0x77(33–119), mientras que el valor del segundo byte es de 0x21–0x7E(33–126). Como el rango de bytes se superpone significativamente con ASCII, se requieren caracteres especiales para indicar si un carácter está en el rango ASCII o es parte de la secuencia de dos bytes de la región extendida, es decir, las funciones Shift Out y Shift In . Esto plantea un riesgo de codificación incorrecta, ya que el manejo inadecuado del texto puede provocar la falta de información.

Para asignar los puntos de código qūwèi a bytes ISO-2022, agregue 32 ( 0x20) tanto al número de fila (o qū, 区) como al número de celda/columna (o wèi, 位). El resultado de la suma al número de fila del punto de código formará el byte alto, y el resultado de la suma al número de celda del punto de código formará el byte bajo, de manera similar a la codificación EUC.

Por ejemplo, para codificar el carácter "外" en la celda qūwèi 45-66, el byte alto utilizará el número de fila 45: 45+32=77= 0x4D, y el byte bajo provendrá de la celda número 66: 66+32=98= 0x62. Por lo tanto, la codificación completa es <4D 62>. [11]

Hertz

HZ es otra codificación de GB/T 2312 que se utiliza principalmente para publicaciones en Usenet ; los caracteres se representan con los mismos pares de bytes que en ISO-2022-CN, pero las secuencias de bytes que indican el comienzo y el final de un rango de texto GB 2312 difieren.

Gráficos de códigos

En las tablas siguientes, donde se proporciona un par de números hexadecimales para un byte de prefijo o un byte de codificación, se utiliza el más pequeño (con el octavo bit sin establecer o no disponible) cuando se codifica sobre GL ( 0x 21-0x7E ), como en ISO-2022-CN o HZ-GB-2312 , y el más grande (con el octavo bit establecido) se utiliza en el caso más típico de que se codifique sobre GR (0xA1-0xFE), como en EUC-CN , GBK o GB 18030 . Los números Qūwèi se dan en decimal.

Cuando se codifica GB/T 2312 sobre GR, ambos bytes tienen el octavo bit establecido (es decir, son mayores que 0x7F). GBK y GB 18030 también utilizan códigos de dos bytes en los que solo el primer byte tiene el octavo bit establecido para fines de extensión: dichos códigos están fuera del plano GB/T 2312 y no se tabulan aquí.

Byte principal

Este gráfico detalla la disposición general del plano principal del conjunto de caracteres GB/T 2312 por byte inicial. Para los bytes iniciales utilizados para caracteres distintos de hanzi , se proporcionan enlaces a gráficos en esta página que enumeran los caracteres codificados bajo ese byte inicial. Para los bytes iniciales utilizados para hanzi, se proporcionan enlaces a la sección correspondiente del índice hanzi de Wikcionario .

Filas que no son Hanzi

En los siguientes cuadros se enumeran los caracteres no hanzi disponibles en GB/T 2312, en GB/T 12345 y en la región de doble byte 1 de GB 18030 (que corresponde aproximadamente a la región no hanzi de GB/T 2312). Se indican las diferencias entre estos caracteres y las diferencias entre GB 6345.1 e ISO-IR-165 . Se incluyen referencias cruzadas a artículos sobre otros conjuntos de caracteres nacionales CJK para fines de comparación.

Dos implementaciones de GB2312

Las asignaciones Unicode del punto intermedio ( chino :间隔点; lit. 'punto separador') y el guión largo ( chino :破折号) en el subconjunto de GBK y GB 18030 correspondiente a GB/T 2312 ( U+00B7 · PUNTO MEDIO y U+2014GUIÓN LONGITUDINAL ) difieren de las que se enumeran en GB2312.TXT ( U+30FBPUNTO MEDIO KATAKANA y U+2015BARRA HORIZONTAL ), que es un archivo de datos que fue proporcionado previamente por el Consorcio Unicode , [13] aunque ha sido designado como obsoleto desde agosto de 2011 [14] y ya no está alojado a partir de septiembre de 2016.

A partir de 2015, Microsoft .Net Framework sigue las asignaciones GB 18030 al asignar esos dos caracteres en datos etiquetados como gb2312, mientras que ICU , [15] iconv-1.14, [16] php-5.6, ActivePerl-5.20, Java 1.7 y Python 3.4 [17] siguen GB2312.TXT en respuesta a la gb2312etiqueta. Ruby 2.2 es compatible con ambas implementaciones; convierte internamente los caracteres conflictivos al subconjunto GB 18030. La recomendación técnica W3C / WHATWG para su uso con HTML5 especifica una codificación GBK que se debe inferir para los flujos etiquetados como gb2312, que a su vez utiliza un decodificador GB18030. [18]

Otros proveedores han definido y utilizado otros mapeos diferentes, [13] incluido uno de Apple . [19]

Conjunto de caracteres 0x21/0xA1 (fila 1: puntuación y símbolos)

Esta fila contiene signos de puntuación, operadores matemáticos y otros símbolos. La siguiente tabla muestra las asignaciones de GB 18030 [20] para estos caracteres GB/T 2312 primero, seguidas de cualquier otra asignación documentada.

Conjunto de caracteres 0x22/0xA2 (fila 2: marcadores de lista)

Esta fila contiene varios tipos de marcadores de lista. Las formas en minúscula de los números romanos no se incluyeron en el GB/T 2312 original [21] ni en el GB/T 12345 [6], pero sí se incluyen en la página de códigos de Windows 936 [22] y en el GB 18030 [20] . El GB 18030 también agregó un símbolo del euro [20 ].

Conjunto de caracteres 0x23/0xA3 (fila 3: ISO 646-CN)

Esta fila contiene la norma ISO 646-CN (GB/T 1988-80), una contraparte nacional de ASCII . Compárese la fila 3 de KS X 1001 , que hace lo mismo con la versión ISO 646 de Corea del Sur , y la fila 3 de JIS X 0208 y de KPS 9566 , que incluyen solo el subconjunto alfanumérico, pero en el mismo diseño. El siguiente cuadro enumera la norma ISO 646-CN.

Cuando se utilizan en una codificación que permite la combinación con ASCII, como EUC-CN (y su superconjunto GB 18030 ), estos caracteres se implementan normalmente como caracteres de ancho completo , por lo que se utilizan asignaciones al bloque de formas de ancho medio y ancho completo como se muestra a continuación. GB 6345.1 también maneja esta fila como de ancho completo y agrega las formas de ancho medio (como se muestra arriba) como fila 10. [1] Apple asigna principalmente esta fila a puntos de código de ancho completo como se muestra a continuación, pero utiliza asignaciones que no son de ancho completo para la línea superior y el signo yuan como se muestra arriba. [19]

Conjunto de caracteres 0x24/0xA4 (fila 4: Hiragana)

Este conjunto contiene Hiragana para escribir en idioma japonés .

Compárese con la fila 4 de JIS X 0208 , con la que coincide esta fila, y con la fila 10 de KS X 1001 y de KPS 9566 , que utilizan el mismo diseño, pero en una fila diferente.

Conjunto de caracteres 0x25/0xA5 (fila 5: Katakana)

Este conjunto contiene katakana para escribir el idioma japonés . Sin embargo, la marca de vocal larga japonesa , que se utiliza en texto katakana y se incluye en la fila 1 de JIS X 0208 , no está incluida en GB/T 2312, aunque se agrega en GBK y GB 18030 fuera del plano principal de GB/T 2312, [24] en 0xA960. [20]

Compárese con la fila 5 de JIS X 0208 , con la que coincide esta fila, y con la fila 11 de KS X 1001 y de KPS 9566 , que utilizan el mismo diseño, pero en una fila diferente.

Conjunto de caracteres 0x26/0xA6 (fila 6: extensiones griegas y verticales)

Esta fila contiene soporte básico para el alfabeto griego moderno , sin diacríticos ni sigma final .

Los caracteres resaltados son formas de presentación de signos de puntuación para escritura vertical y no están incluidos en GB/T 2312 propiamente dicho, pero están incluidos en esta fila en GB/T 12345, [1] [6] la página de códigos de Windows 936 , [22] Mac OS Simplified Chinese, [19] y GB 18030. [20] Se consideran "extensiones estándar de GB 2312". [19] Por el contrario, ISO-IR-165 incluye caracteres semigráficos estampados en esta fila (en su mayoría sin contrapartes exactas en Unicode), lo que choca con las posiciones de código utilizadas para las extensiones verticales. [25]

Compárese con la fila 6 de JIS X 0208 , que coincide con esta fila cuando no se incluyen las formas verticales, y con la fila 6 de KPS 9566 , que incluye las mismas letras griegas en el mismo diseño, pero agrega números romanos en lugar de formas verticales. Compárese con la fila 5 de KS X 1001 , que desplaza las letras griegas para incluir primero los números romanos.

Conjunto de caracteres 0x27/0xA7 (fila 7: cirílico)

Este conjunto incluye ambos casos de 33 letras del alfabeto cirílico , suficientes para escribir el alfabeto ruso moderno y el alfabeto búlgaro , aunque otras formas del alfabeto cirílico requieren letras adicionales. [27]

Compárese con la fila 7 de JIS X 0208 , con la que coincide esta fila, y con la fila 12 de KS X 1001 y la fila 5 de KPS 9566 , que utilizan el mismo diseño pero en filas diferentes.

Conjunto de caracteres 0x28/0xA8 (fila 8: zhuyin y pinyin no ASCII)

Esta fila contiene caracteres bopomofo y pinyin , excluyendo letras ASCII (que están en la fila 3). Los caracteres resaltados son aquellos que no están en el conjunto base GB 2312 pero que se agregaron en GB 6345.1 , [19] y también se incluyen en GB/T 12345, [1] [6] Página de códigos de Windows 936 , [22] Mac OS Simplified Chinese [19] y GB 18030. [20] Se consideran "extensiones estándar de GB 2312". [19]

GB 6345.1 trata el pinyin en esta fila como de ancho completo e incluye contrapartes de medio ancho como fila 11; [1] GB 18030 no hace esto.

Conjunto de caracteres 0x29/0xA9 (fila 9: dibujo del cuadro)

Filas Hanzi

Correcciones

GB 5007.1-85 Conjunto de fuentes de mapa de bits 24x24 de caracteres chinos para intercambio de información ( chino :信息交换用汉字 24x24 点阵字模集) es la plantilla de fuente más antigua basada en GB/T 2312 que presenta correcciones y extensiones que incluyen:

GB/T 2312 no tenía correcciones, pero estas correcciones están incluidas en las plantillas de fuentes que se basan en GB/T 2312, incluida GB/T 12345; sus superconjuntos GBK y GB 18030 también incluyeron estas correcciones. GB/T 2312 también se utiliza en ISO-IR-165 .

Véase también

Referencias

  1. ^ abcde Lunde, Ken (2009). Procesamiento de información CJKV: computación china, japonesa, coreana y vietnamita (2.ª ed.). Sebastopol, CA : O'Reilly . Págs. 94-111. ISBN. 978-0-596-51447-1.
  2. ^ "2017年第7号中国国家标准公告 (Boletín de normas nacionales de China 2017 No.7)". Administración de Normalización de la República Popular China . Consultado el 3 de julio de 2018 .
  3. ^ "Distribución de codificaciones de caracteres entre sitios web que utilizan China y territorios". w3techs.com . Consultado el 4 de septiembre de 2022 .
  4. ^ "Tendencias históricas en las estadísticas de uso de codificaciones de caracteres para sitios web, octubre de 2022". w3techs.com . Consultado el 1 de octubre de 2022 .
  5. ^ "Codificación: resultados resumidos de las pruebas". www.w3.org . Consultado el 15 de noviembre de 2019 .
  6. ^ abcd Lunde, Ken (1998). Apéndice F: GB/T 12345 (PDF) . O'Reilly Media . ISBN. 9781565922242. {{cite book}}: |work=ignorado ( ayuda )
  7. ^ GB12345-80 a la tabla Unicode. Consorcio Unicode . 1993-12-06. Archivado desde el original el 2004-06-17.
  8. ^ Hannas, William C. (1997). El dilema ortográfico de Asia. Prensa de la Universidad de Hawai'i. pag. 264.ISBN 9780824818920El conjunto cubre más del 99,99 por ciento de los usos. Sin embargo, los diseñadores consideraron necesario agregar 14.276 caracteres de "uso especial" para cubrir imprevistos .
  9. ^ "GB 2312-1980: Tecnología de la información: conjunto de caracteres codificados con ideogramas chinos para el intercambio de información (conjunto básico)". Mayo de 1981.
  10. ^ "Tabla de Unicode a GB2312 o GBK". cs.nyu.edu . Archivado desde el original el 3 de marzo de 2016 . Consultado el 11 de enero de 2022 .
  11. ^ ab Lunde, Ken Roger (diciembre de 2008). Procesamiento de información CJKV (2ª ed.). O'Reilly . ISBN 978-0-596-51447-1.
  12. ^ "GB 2312-1980: Tecnología de la información: conjunto de caracteres codificados con ideogramas chinos para el intercambio de información (conjunto básico)". Mayo de 1981. Consultado el 2 de octubre de 2016 .
  13. ^ ab Haible, Bruno. «GB2312 (Tablas de conversión)» . Consultado el 29 de septiembre de 2016 .
  14. ^ "Readme – MAPPINGS/OBSOLETE/EASTASIA". 9 de agosto de 2001. Consultado el 29 de septiembre de 2016 .
  15. ^ "java-EUC_CN-1.3_P.ucm" . Consultado el 29 de septiembre de 2016 .[ enlace muerto permanente ]
  16. ^ "libiconv:lib/gb2312.h". GNU Savannah . Consultado el 29 de septiembre de 2016 .
  17. ^ "Número 24036". Rastreador de errores de Python .
  18. ^ "Codificación § Nombres y etiquetas". W3C . Consultado el 29 de septiembre de 2016 .
  19. ^ abcdefghij "Mapa (versión externa) de la codificación chino simplificado de Mac OS a Unicode 3.0 y posteriores". Apple, Inc.
  20. ^ abcdefghij Administración de Normalización de China (SAC) (18 de noviembre de 2005). GB 18030-2005: Tecnología de la información: conjunto de caracteres codificados chinos.
  21. ^ Asociación China de Normalización . Conjunto de caracteres gráficos codificados chinos para el intercambio de información (PDF) . ITSCJ/ IPSJ . ISO-IR -58.
  22. ^ abcdef Microsoft . «PÁGINA DE CÓDIGOS 936: PRC GBK (XGB) - ANSI, OEM». Consorcio Unicode .
  23. ^ ab Viswanadha, Raghuram (30 de agosto de 2000). "Tabla de Unicode a ISO-IR-165". Componentes internacionales para Unicode . IBM .
  24. ^ Lunde, Ken (2009). "Caracteres aparentemente faltantes". Procesamiento de información CJKV: computación china, japonesa, coreana y vietnamita (2.ª ed.). Sebastopol, CA : O'Reilly . pág. 180. ISBN 978-0-596-51447-1.
  25. ^ ab CCITT (1992-07-13). Códigos del conjunto de caracteres gráficos chinos para comunicaciones (PDF) . ITSCJ/ IPSJ . ISO-IR -165.
  26. ^ Lunde, Dr Ken (4 de agosto de 2022). "La norma GB 18030-2022". Medium . Consultado el 7 de agosto de 2022 .
  27. ^ Czyborra, Roman (1998-11-30) [1998-05-25]. "La sopa de caracteres cirílicos". Archivado desde el original el 2016-12-03 . Consultado el 2016-12-03 .
  28. ^ "Políticas de estabilidad de la codificación de caracteres Unicode". Consorcio Unicode. 23 de junio de 2017.

Notas

  1. ^ Solo para ideogramas contemplados en GB/T 2312, todos los cuales entran en Unicode BMP
  2. ^ ab Como un conjunto de 94 n caracteres compatible con ISO 2022 , el espacio simple y el carácter de eliminación están disponibles como códigos de un solo byte en 0x20 y 0x7F (no 0xA0 y 0xFF) respectivamente.
  3. ^ Utilizado para U+FF47 por la mayoría de las implementaciones basadas en GB 6345.1 , incluida la implementación de Apple y GB 18030 (que usan 8-32 para U+0261), [20] pero para U+0261 por ISO-IR-165 . [23]
  4. ^ abcdefghij Estos caracteres pertenecen al bloque de Formas verticales . Algunas asignaciones en uso se diseñaron cuando las únicas formas de presentación verticales que existían en Unicode eran las del bloque de Formas de compatibilidad CJK . Específicamente, Windows-936 y anteriormente GB 18030 las asignan al Área de uso privado , pero con un glifo definido, [22] [20] y Apple las asigna al carácter de ancho completo regular con un carácter de uso privado adjunto U+F87E como marcador de variación. [19] En la actualización GB 18030-2022, estas asignaciones del Área de uso privado se eliminaron y ahora se asignan a sus puntos de código Unicode estándar. [26]
  5. ^ Asignado al Área de uso privado U+E7C7 por la primera edición (2000) de GB 18030 , y también por Windows-936; [22] esto fue modificado por la edición 2005 de GB 18030. [20]
  6. ^ Este carácter compuesto se agregó en Unicode 3.0. Antes de esto, Apple lo asignaba a su secuencia de composición (es decir, U+006E+0300 ). [19] Este cambio es anterior a la estabilización de las formas de normalización de Unicode , que se introdujo en Unicode 3.1. [28] Windows-936 lo asigna al Área de uso privado U+E7C8 . [22]
  7. ^ Asignado a U+0261 en GB 18030 [20] y la mayoría de las otras implementaciones basadas en GB 6345.1 [19] (que usan 3-71 para U+FF47), pero a U+FF47 en ISO-IR-165. [23] [25]
  1. ^ ɑ (U+0251)
    ḿ (U+1E3F; Enviado en Unicode 3.0, por lo tanto CP936 no incluyó este carácter [1] [ enlace muerto permanente ] )
    ń (U+0144)
    ň (U+0148)
    ǹ (U+01F9; Enviado en Unicode 3.0, por lo tanto CP936 no incluyó este carácter [2] [ enlace muerto permanente ] )
    ɡ (U+0261)

Lectura adicional

Enlaces externos