stringtranslate.com

ES 18030

GB 18030 es un estándar del gobierno chino , descrito como Tecnología de la información: conjunto de caracteres codificados en chino y define el idioma y el soporte de caracteres necesarios para el software en China . GB18030 es el nombre registrado en Internet para el juego de caracteres oficial de la República Popular China (RPC) que reemplaza a GB2312 . [1] Como formato de transformación Unicode [a] (es decir, una codificación de todos los puntos de código Unicode ), GB18030 admite caracteres chinos simplificados y tradicionales . También es compatible con codificaciones heredadas, incluidas GB2312, CP936 , [b] y GBK  1.0.

Además de la "codificación de caracteres GB18030", este estándar contiene requisitos sobre qué scripts deben ser compatibles, compatibilidad con fuentes, etc. [2]

El estándar actualizado GB18030-2022 , es incompatible, [3] y tenía fecha de entrada en vigor el 1 de agosto de 2023. [4] Se ha implementado ICU 73.2; y en Java 21, [5] y con versiones anteriores de Java 8, 11, 17 (versiones LTS) y 20.0.2. [6]

A partir de 2022, en términos de implementaciones de fuentes, "solo las fuentes chinas simplificadas de las familias tipográficas Noto Sans CJK (Google), Source Han Mono (Adobe) y Source Han Sans (Adobe) ya cumplen con la implementación de GB 18030-2022. Nivel 2 [..] Microsoft YaHei (Microsoft), Noto Serif CJK (Google), PingFang (Apple) y Source Han Serif (Adobe), al menos las versiones a partir de noviembre de 2022 , requieren una pequeña cantidad de adiciones de URO que son asociado con el Nivel de implementación 1 para cumplir con el Nivel de implementación 2 de GB 18030-2022 ". [7]

Historia

El juego de caracteres GB18030 se denomina formalmente "Estándar nacional chino GB 18030-2005: Tecnología de la información: juego de caracteres codificados en chino". GB abrevia Guójiā Biāozhǔn (国家标准), que significa estándar nacional en chino. La norma fue publicada por China Standard Press, Beijing, el 8 de noviembre de 2005. Sólo una parte de la norma es obligatoria. [2] Desde el 1 de mayo de 2006, el soporte para el subconjunto obligatorio es oficialmente obligatorio para todos los productos de software vendidos en la República Popular China.

El 17 de marzo de 2000 se publicó una versión anterior del estándar, conocida como "Estándar nacional chino GB 18030-2000: Tecnología de la información: conjunto de caracteres codificados de ideogramas chinos para el intercambio de información; extensión para el conjunto básico". Lo mismo en la nueva versión, y la única diferencia en el mapeo de GB a Unicode es que GB 18030-2000 asignó el carácter A8 BC(ḿ) a un punto de código de uso privado U+E7C7, y el carácter 81 35 F4 37(sin especificar ningún glifo) a U+. 1E3F (ḿ), mientras que GB 18030-2005 intercambia estas dos asignaciones de mapeo. [8] : 534  Ahora se asocian más puntos de código con caracteres debido a la actualización de Unicode , especialmente la aparición de la extensión B de ideogramas unificados CJK . Algunos caracteres utilizados por minorías étnicas en China , como los caracteres mongoles y tibetanos (GB 16959-1997). y GB/T 20542-2006), también se han agregado, lo que explica el cambio de nombre del estándar.

En comparación con sus antepasados, la asignación de GB 18030 a Unicode se ha modificado para los 81 caracteres a los que se les asignó provisionalmente un punto de código de área de uso privado Unicode (U+E000–F8FF) en GBK 1.0 y que luego se codificaron en Unicode. [9] Esto se especifica en el Apéndice E de GB 18030. [8] : 534  [10] : 499  Hay 24 caracteres en GB 18030-2005 que todavía están asignados a Unicode PUA. [11]

En la actualización GB 18030-2022, los requisitos para que los caracteres se asignen a PUA se eliminaron por completo y todos los caracteres deben asignarse a sus puntos de código Unicode estándar. De estas, 18 asignaciones se actualizaron mediante intercambio de posición similar a lo que sucedió entre GBK y GB 18030. Los seis restantes mantuvieron las asignaciones de PUA de dos bytes, por lo que se necesita un cambio en la secuencia de 4 bytes para seguir las asignaciones que no son PUA. preferencia. [12]

Como estándar nacional

La primera versión de GB 18030, denominada GB 18030-2000 Tecnología de la información: conjunto de caracteres codificados chinos para el intercambio de información. Extensión para el conjunto básico , consta de codificaciones de 1 byte y 2 bytes, junto con una codificación de 4 bytes para ideogramas unificados CJK. Extensión A que coincide con las de Unicode 3.0. Los puntos de código Unicode correspondientes de este subconjunto, incluidas las asignaciones privadas provisionales, se encuentran completamente en BMP . Estas partes son totalmente obligatorias en GB 18030-2000. [2] : 2  La mayoría de las principales empresas de informática ya habían estandarizado alguna versión de Unicode como formato principal para su uso en sus formatos binarios y llamadas de sistema operativo. Sin embargo, en su mayoría solo admitían puntos de código en el BMP definido originalmente en Unicode 1.0, que admitía solo 65,536 puntos de código y a menudo estaba codificado en 16 bits como UCS-2 . Este estándar es básicamente una extensión basada en GBK con caracteres adicionales en CJK Unified Ideographs Extension A.

La segunda versión, denominada GB 18030-2005 Tecnología de la información: el juego de caracteres codificados en chino tiene el mismo subconjunto obligatorio que GB 18030-2000 de codificaciones de 1, 2 y 4 bytes. [8] : 3  Esta versión también incluye la extensión B completa de ideogramas unificados CJK en la sección de codificación de 4 bytes que está fuera del BMP [11] como requisito de soporte de sugerencias. [15] Sin embargo, como se requiere mantener la inclusión de CJK Unified Ideographs Extension B en una región de 4 bytes durante el procesamiento de la información, el software ya no puede salirse con la suya al tratar los caracteres como entidades de ancho fijo de 16 bits ( UCS-2 ). . Por lo tanto, deben procesar los datos en un formato de ancho variable (como UTF-8 o UTF-16 ), que es la opción más común, o pasar a un formato de ancho fijo más grande (es decir, UTF-32 ). Microsoft realizó el cambio de UCS-2 a UTF-16 con Windows 2000. Esta versión coincide con Unicode 3.1 y también brindó soporte para Hangul ( coreano ), mongol (incluido manchú , escritura clara , Sibe hergen , Galik ), Tai Nuea , Tibetano , uigur / kazajo / kirguís y yi .

La tercera y última versión, GB 18030-2022 Tecnología de la información: conjunto de caracteres codificados en chino , exige la parte de soporte de sugerencias de la extensión B de CJK Unified Ideographs en GB 18030-2005, junto con actualizaciones hasta Unicode 11.0, incluidos Kangxi Radicals y CJK Unified Ideographs Extension. C, D, E y F. GB 18030-2022 también reconoce idiomas adicionales, como parte del árabe , Tai Le , New Tai Lue , Tai Tham , Lisu y Miao . GB 18030-2022 también introduce tres niveles de implementación, con el requisito de que "todos los productos que utilizan este estándar deben implementar el nivel de implementación 1", que incluye 66 nuevos caracteres BMP en la región de codificación de 4 bytes que se agregaron entre Unicode 3.1 y Unicode 11.0. El nivel de implementación 2 requiere el soporte de la Tabla de caracteres chinos estándar generales y el nivel de implementación 3 requiere todas las demás regiones especificadas en el estándar. [12]

Cartografía

GB 18030 define una codificación de uno (ASCII), dos (GBK extendido) o cuatro bytes (UTF). Los códigos de dos bytes se definen en una tabla de búsqueda, mientras que los códigos de cuatro bytes se definen secuencialmente (por lo tanto, algorítmicamente) para completar partes que de otro modo no estarían codificadas en UCS . GB 18030 hereda los aspectos negativos de GBK , en particular la necesidad de un código especial para encontrar caracteres ASCII de forma segura en una secuencia GB18030.

Los puntos de código de uno y dos bytes son esencialmente GBK con el signo del euro, asignaciones de PUA para puntos no asignados/definidos por el usuario y puntuaciones verticales. Se puede considerar que el esquema de cuatro bytes consta de dos unidades, cada una de dos bytes. Cada unidad tiene un formato similar a un carácter GBK de dos bytes, pero con un rango de valores para el segundo byte de 0x30 a 0x39 (los códigos ASCII para dígitos decimales). El primer byte tiene el rango de 0x81 a 0xFE, como antes. Esto significa que una rutina de búsqueda de cadenas que sea segura para GBK también debería ser razonablemente [ se necesita aclaración ] segura para GB18030 (de la misma manera que una rutina de búsqueda básica orientada a bytes es razonablemente segura para EUC ).

Esto da un total de 1.587.600 (126×10×126×10) posibles secuencias de 4 bytes, lo que es fácilmente suficiente para cubrir los 1.112.064 (17×65536 − 2048 sustitutos) de Unicode puntos de código asignados, reservados y sin caracteres.

Desafortunadamente, para complicar aún más las cosas, no existen reglas simples para traducir entre una secuencia de 4 bytes y su punto de código correspondiente . En cambio, los códigos se asignan secuencialmente (con el primer byte que contiene la parte más significativa y el último la parte menos significativa) solo a puntos de código Unicode que no están asignados de ninguna otra manera. [h] Por ejemplo:

U+00DE (Þ) → 81 30 89 37U+00DF (ß) → 81 30 89 38U+00E0 (à) → A8 A4U+00E1 (á) → A8 A2U+00E2 (â) → 81 30 89 39U+00E3 (ã) → 81 30 8A 30

Se utiliza una tabla de compensación en la versión WHATWG y W3C de GB 18030 para traducir puntos de código de manera eficiente. [17] ICU [16] y glibc utilizan definiciones de rango similares para evitar desperdiciar espacio en grandes bloques secuenciales.

Apoyo

Codificación

GB  18030 ha sido compatible con Windows desde el lanzamiento de Windows Vista , como página de códigos 54936. [18] Windows 2000 y XP ofrecen un paquete de soporte GB18030. [19] La base de datos PostgreSQL de código abierto admite GB18030 a través de su soporte total para UTF-8, es decir, convirtiéndolo hacia y desde UTF-8. De manera similar, Microsoft SQL Server admite GB18030 mediante conversión hacia y desde UTF-16.

Más específicamente, admitir la codificación GB18030 en Windows significa que la página de códigos 54936 es compatible con MultiByteToWideChary WideCharToMultiByte. Debido a la compatibilidad con versiones anteriores de la asignación, muchos archivos en GB18030 se pueden abrir correctamente como la página de códigos heredada 936, es decir, GBK, incluso si la página de códigos 54936 no es compatible. Sin embargo, esto sólo es cierto si el archivo en cuestión contiene sólo caracteres GBK. La carga fallará o provocará resultados corruptos si el archivo contiene caracteres que no existen en GBK (consulte § Detalles técnicos para ver ejemplos).

gconv de GNU glibc , la biblioteca de códecs de caracteres utilizada en la mayoría de las distribuciones de Linux, admite GB 18030-2000 desde 2.2, [20] y GB 18030-2005 desde 2.14; [21] glibc incluye en particular asignaciones que no son PUA para GB 18030-2005 con el fin de lograr una conversión de ida y vuelta. [22] GNU libiconv , una implementación alternativa de iconv utilizada frecuentemente en entornos tipo UNIX que no son glibc como Cygwin , soporta GB 18030 desde la versión 1.4. [23]

A partir de 2022, "la compatibilidad con escrituras no chinas sigue siendo opcional" [7] (presumiblemente solo para compatibilidad con visualización/fuentes; y en China, ya que la codificación es UTF completa). Se sabe que el estándar es compatible con inglés/ASCII y GB 18030-2022 reconoce las "siguientes escrituras no chinas: árabe, tibetano, mongol, Tai Le, New Tai Lue, Tai Tham, Yi, Lisu, Hangul (coreano), y Miao." [7]

Glifos

El paquete de soporte GB18030 para Windows contiene SimSun18030.ttc, un archivo de colección de fuentes TrueType que combina dos fuentes chinas, SimSun-18030 y NSimSun-18030. La fuente SimSun 18030 incluye todos los caracteres [ se necesita aclaración ] en Unicode 2.1 más los nuevos caracteres que se encuentran en el bloque Unicode CJK Unified Ideographs Extension A aunque, a pesar de su nombre, no contiene glifos para todos los caracteres codificados por GB 18030, como todos ( alrededor de un millón) Los puntos de código Unicode hasta U+10FFFF se pueden codificar como GB 18030. La certificación de cumplimiento GB 18030 solo requiere el manejo y reconocimiento correcto de los glifos en la parte china obligatoria (dos bytes y CJK Ext. A). [2] : 4  Sin embargo, el requisito de caracteres PUA en el estándar ha obstaculizado esta implementación. [24]

Otras familias de fuentes CJK como HAN NOM [25] y Hanazono Mincho [26] brindan una cobertura más amplia para los bloques Unicode CJK Extension que SimSun-18030 o incluso SimSun (Founder Extended), pero no admiten todos los puntos de código definidos en Unicode 5.0. 0 tampoco.

Ver también

Notas

  1. ^ Tenga en cuenta que GB18030 omite sustitutos; consulte #Mapeo.
  2. ^ El signo del euro es una excepción a la que se le asigna un código de un solo byte de 0x80 en las versiones posteriores de CP936/GBK de Microsoft y un código de dos bytes de A2 E3 en GB18030.
  3. ^ Los puntos de código incluyen los 66 caracteres que no son Unicode.
  4. ^ La UCI parece considerar erróneamente válido este punto de código, que no se encuentra en ninguna de las versiones de los estándares publicados. WHATWG asigna este byte a U+20AC ( signo de euro GBK ) en su decodificador universal gb2312-gbk-gb18030.
  5. ^ Para obtener una división más detallada de este rango, consulte GBK (codificación de caracteres) § Codificación .
  6. ^ Algunos puntos de código están codificados con dos bytes (fila superior), otros con cuatro bytes (fila inferior). U+FFFF está codificado como 84 31 A4 39en la página 239 del estándar de 2005, aunque el estándar da lo mismo 84 39 FE 39para el mapeo BMP.
  7. ^ Estos son puntos de código sustitutos ; no tienen significado fuera de la codificación UTF-16 .
  8. ^ Además, debido a que se intercambiaron las codificaciones de U+E7C7 y U+1E3F, U+E7C7 está codificado en la edición de 2005 del estándar como 81 35 F4 37, entre U+1E3E (81 35 F4 36) y U+. 1E40 (81 35 F4 38). Por lo tanto, sólo la edición de 2000 es completamente secuencial en la asignación de códigos de cuatro bytes a puntos de código que de otro modo no estarían asignados.

Referencias

  1. ^ Anthony Fok (15 de marzo de 2002). "Solicitud de registro de conjuntos de caracteres de la IANA para GB18030". Registros de conjuntos de caracteres de la IANA . Consultado el 5 de diciembre de 2016 .
  2. ^ abcd CESI (8 de julio de 2009). "GB18030 符合性问与答" [Preguntas frecuentes sobre el cumplimiento de GB18030]. Centro de Certificación CESI . Archivado desde el original el 28 de septiembre de 2016 . Consultado el 12 de octubre de 2016 . Página 4 : GB 18030-2005理GB 18030-2005强制部分规定的全部汉字字符;②产品可以正确识别GB 18030 -2005强制性部分规定的全部汉字字符对应的编码。 [Un producto que cumpla con la parte obligatoria de GB 18030 debe poder correctamente a) ingresar, generar y procesar todos los caracteres chinos definidos en el conjunto obligatorio; b) reconocer codificaciones de caracteres en el conjunto obligatorio.]URL alternativa
  3. ^ "Cambios disruptivos en GB 18030-2022" (PDF) . www.unicode.org . Consultado el 12 de febrero de 2024 .
  4. ^ "[JDK-8301119] Compatibilidad con GB18030-2022: sistema de errores de Java". bugs.openjdk.org . Consultado el 14 de agosto de 2023 .
  5. ^ "Notas de la versión de JDK 21". jdk.java.net . Consultado el 14 de agosto de 2023 .
  6. ^ "[JDK-8307340] Nota de la versión: compatibilidad con GB18030-2022: sistema de errores de Java". bugs.openjdk.org . Consultado el 30 de agosto de 2023 .
  7. ^ abc Lunde, Ken (16 de agosto de 2022). "El estándar GB 18030-2022". Medio . Consultado el 1 de noviembre de 2022 .
  8. ^ abcde Administración de Normalización de China (SAC) (18 de noviembre de 2005). GB 18030-2005: Tecnología de la información: juego de caracteres codificados en chino.
  9. ^ "Preguntas frecuentes sobre Unicode sobre GB 18030". Proyecto UCI . Consultado el 10 de septiembre de 2016 .
  10. ^ ab GB 18030-2000: Tecnología de la información: conjunto de caracteres codificados de ideogramas chinos para el intercambio de información: extensión para el conjunto básico. 2000-03-17. {{cite book}}: |work=ignorado ( ayuda )
  11. ^ abc Lunde, Ken (2006). "Actualización L2/06-394 en GB 18030:2005". Registro de documentos del Comité Técnico Unicode . Consultado el 28 de septiembre de 2016 .
  12. ^ abc Lunde, Ken (4 de agosto de 2022). "El estándar GB 18030-2022". Medio . Consultado el 7 de agosto de 2022 .
  13. ^ "Grupo: GBK外字". GlifoWiki . Consultado el 11 de septiembre de 2016 .
  14. ^ ab Lunde, Ken (diciembre de 2008). Procesamiento de Información CJKV. O'Reilly Media, Inc. ISBN 978-0-596-51447-1. Consultado el 11 de septiembre de 2016 .
  15. ^ CESI (8 de julio de 2009). "GB18030 符合性问与答" [Preguntas frecuentes sobre el cumplimiento de GB18030]. Centro de Certificación CESI . Archivado desde el original el 28 de septiembre de 2016 . Consultado el 12 de octubre de 2016 . Página 4理GB 18030-2005强制部分规定的全部汉字字符;②产品可以正确识别GB 18030 -2005强制性部分规定的全部汉字字符对应的编码。 [Un producto que cumpla con la parte obligatoria de GB 18030 debe poder correctamente a) ingresar, generar y procesar todos los caracteres chinos definidos en el conjunto obligatorio; b) reconocer codificaciones de caracteres en el conjunto obligatorio.]
  16. ^ ab Tabla de mapeo autorizada entre GB18030-2000 y Unicode. ICU – Componentes internacionales para Unicode. 2001-02-21. Consultado el 4 de septiembre de 2016.
  17. ^ "Estándar de codificación n.º gb18030-index". QUÉ WG . Consultado el 24 de septiembre de 2016 .
  18. ^ Puente, Karl (13 de octubre de 2021). "Función MultiByteToWideChar (stringapiset.h) - Aplicaciones Win32". aprender.microsoft.com . Consultado el 1 de noviembre de 2022 .
  19. ^ Microsoft. "Paquete de soporte GB18030". Microsoft . Archivado desde el original el 5 de junio de 2012.
  20. ^ Drepper, Ulrich. "Módulo iconv GB18030 para glibc". glibcgit . Consultado el 29 de noviembre de 2016 .
  21. ^ Drepper, Ulrich. "Actualice GB18030 a la versión 2005". glibcgit . Consultado el 29 de noviembre de 2016 .
  22. ^ Weimer, Florián; O´Donell, Carlos. "Estado de las tablas GB18030 (n.º 19575)". Fuente Bugzilla . Consultado el 29 de noviembre de 2016 .
  23. ^ "NOTICIAS - libiconv.git - libiconv". git.savannah.gnu.org . Consultado el 13 de octubre de 2016 .
  24. ^ Lund, Ken. "Si se revisa gb18030, considere alinear el estándar de codificación · Número 27 · whatwg/encoding". GitHub . Además, admitir puntos de código PUA en el contexto de las fuentes Noto CJK y Source Han es totalmente imposible, principalmente porque son tipos de letra Pan-CJK, y el uso de PUA es extremadamente peligroso en tales contextos.[...] Uno de Mis amigos del CESI compartieron conmigo el texto del borrador final hace unos días. Esto confirmó que se está eliminando el requisito de PUA para los 24 caracteres.
  25. ^ VietnamUnicode. "/hannom". fuenteforge.net . Consultado el 13 de octubre de 2016 .
  26. ^ "Fuentes Hanazono". fuentes.jp . Consultado el 13 de octubre de 2016 .

enlaces externos