Big-5 o Big5 ( chino :大五碼) es un método de codificación de caracteres chinos utilizado en Taiwán , Hong Kong y Macao para caracteres chinos tradicionales .
La República Popular China (RPC) , que utiliza caracteres chinos simplificados , utiliza el conjunto de caracteres GB 18030 (aunque también puede sustituir a Big-5 o UTF-8).
Big5 recibe su nombre del consorcio de cinco empresas de Taiwán que lo desarrolló. [2]
El conjunto de caracteres Big5 original se ordena primero por frecuencia de uso, segundo por número de trazos y, por último, por radical Kangxi .
El conjunto de caracteres Big5 original carecía de muchos caracteres de uso común. Para resolver este problema, cada proveedor desarrolló su propia extensión. La extensión ETen pasó a formar parte del estándar Big5 actual gracias a su popularidad.
La estructura de Big5 no se ajusta a la norma ISO 2022 , sino que guarda cierta similitud con la codificación Shift JIS . Se trata de un conjunto de caracteres de doble byte (DBCS) con la siguiente estructura:
(el prefijo 0x significa números hexadecimales).
Las asignaciones estándar (excluyendo las extensiones definidas por el proveedor o el usuario) no utilizan los bytes 0x7F a 0xA0 ni 0xFF como bytes iniciales (primeros) ni finales (segundos). Los bytes 0xA1 a 0xFE se utilizan tanto para bytes iniciales como finales para códigos de doble byte (Big5). Los bytes 0x40 a 0x7E se utilizan como bytes finales después de un byte inicial o para códigos de un solo byte en caso contrario. Si el segundo byte no está en ninguno de los rangos, el comportamiento no se especifica (es decir, varía de un sistema a otro). Además, ciertas variantes del conjunto de caracteres Big5, por ejemplo, HKSCS , utilizan un rango expandido para el byte inicial, incluidos valores en el rango de 0x81 a 0xA0 (similar a Shift JIS ), mientras que otras utilizan rangos de bytes iniciales reducidos (por ejemplo, la variante Apple Macintosh utiliza 0xFD a 0xFF como códigos de un solo byte, lo que limita el rango de bytes iniciales a 0xA1 a 0xFC ). [3]
El valor numérico de los códigos Big5 individuales se proporciona con frecuencia como un número hexadecimal de 4 dígitos, que describe los dos bytes que componen el código Big5 como si los dos bytes fueran una representación big endian de un número de 16 bits. Por ejemplo, el código Big5 para un espacio de ancho completo, que son los bytes 0xa1 0x40 , generalmente se escribe como 0xa140 o simplemente A140.
En sentido estricto, la codificación Big5 contiene únicamente caracteres DBCS. Sin embargo, en la práctica, los códigos Big5 siempre se utilizan junto con un conjunto de caracteres de un solo byte (SBCS) dependiente del sistema y no especificado (como ASCII o la página de códigos 437 ), de modo que el texto codificado con Big5 contiene una mezcla de caracteres de doble byte y caracteres de un solo byte. Los bytes en el rango de 0x00 a 0x7f que no forman parte de un carácter de doble byte se supone que son caracteres de un solo byte. (Para obtener una descripción más detallada de este problema, consulte la discusión sobre "El SBCS coincidente" a continuación).
El significado de los bytes individuales que no son ASCII y que no forman parte de los valores permitidos y que no forman parte de un carácter de doble byte varía de un sistema a otro. En los sistemas antiguos basados en MSDOS, es probable que se muestren como caracteres de 8 bits; en los sistemas modernos, es probable que den resultados impredecibles o generen un error.
En el Big5 original, la codificación está compartimentada en diferentes zonas:
Los "caracteres gráficos" en realidad comprenden signos de puntuación, signos de puntuación parciales (por ejemplo, la mitad de un guión, la mitad de unos puntos suspensivos; véase más abajo), dingbats , caracteres extranjeros y otros caracteres especiales (por ejemplo, formas de presentación de "ancho completo", dígitos para numerales de Suzhou , zhuyin fuhao , etc.)
En la mayoría de las extensiones de los proveedores, los caracteres extendidos se colocan en las distintas zonas reservadas para caracteres definidos por el usuario, cada una de las cuales normalmente se considera asociada con la zona anterior. Por ejemplo, se esperaría que los "caracteres gráficos" adicionales (por ejemplo, los signos de puntuación) se colocaran en el rango 0xa3c0 – 0xa3fe , y los logogramas adicionales se colocarían en el rango 0xc6a1 – 0xc8fe o en el rango 0xf9d6 – 0xfefe . A veces, esto no es posible debido a la gran cantidad de caracteres extendidos que se deben agregar; por ejemplo, las letras cirílicas y los kana japoneses se han colocado en la zona asociada con los "caracteres de uso frecuente".
Big5 ha codificado dos caracteres duplicados: "兀" en 0xA461 (U+5140) y 0xC94A (U+FA0C), "嗀" en 0xDCD1 (U+55C0) y 0xDDFC (U+FA0D).
Algunos mapas de codificación también asignan los tres numerales de Suzhou, "〸", "〹" y "〺", en la sección gráfica a caracteres ideográficos (U+5341, U+5344 y U+5345 respectivamente) [4] [5] en lugar de símbolos y puntuación CJK (U+3038, U+3039 y U+303A respectivamente). [6] [7]
Un código Big5 individual no siempre representa una unidad semántica completa. Los códigos Big5 de los logogramas son siempre logogramas, pero los códigos de la sección de "caracteres gráficos" no siempre son "caracteres gráficos" completos. Lo que Big5 codifica son representaciones gráficas particulares de caracteres o partes de caracteres que encajan en el espacio ocupado por dos caracteres ASCII monoespaciados. Esta es una propiedad de los conjuntos de caracteres de doble byte de CJK y no es un problema exclusivo de Big5.
(Lo anterior podría necesitar una explicación para ponerlo en perspectiva histórica, ya que es teóricamente incorrecto: cuando la informática personal en modo texto todavía era la norma, los caracteres normalmente se representaban como bytes individuales y cada carácter ocupaba una posición en la pantalla. Por lo tanto, había una razón práctica para insistir en que los caracteres de doble byte debían ocupar dos posiciones en la pantalla, a saber, que el software comercial fabricado en Estados Unidos sería entonces utilizable sin modificación en un sistema basado en DBCS. Si un carácter puede ocupar un número arbitrario de posiciones en la pantalla, el software que suponga que un byte de texto ocupa una posición en la pantalla produciría una salida incorrecta. Por supuesto, si una computadora nunca tuviera que lidiar con la pantalla de texto, el fabricante no impondría esta restricción artificial; la Apple Macintosh es un ejemplo. Sin embargo, la codificación en sí debe diseñarse de modo que funcione correctamente en sistemas basados en pantalla de texto).
Para ilustrar este punto, considere el código Big5 0xa14b (…). Para los angloparlantes, esto parece una elipsis y el estándar Unicode lo identifica como tal; sin embargo, en chino, la elipsis consiste en seis puntos que caben en el espacio de dos caracteres chinos (……), por lo que, de hecho, no existe un código Big5 para la elipsis china, y el código Big5 0xa14b solo representa la mitad de una elipsis china. Representa solo la mitad de una elipsis porque toda la elipsis debe ocupar el espacio de dos caracteres chinos, y en muchos sistemas DBCS un carácter DBCS debe ocupar exactamente el espacio de un carácter chino.
Los caracteres codificados en Big5 no siempre representan elementos que se puedan utilizar fácilmente en archivos de texto sin formato; un ejemplo es el "signo de cita" ( 0xa1ca , ﹋), que, cuando se utiliza, debe escribirse debajo del título de las obras literarias. Otro ejemplo son los numerales de Suzhou, que son una forma de notación científica que requiere que el número se muestre en una forma bidimensional que conste de al menos dos filas.
En la práctica, Big5 no se puede utilizar sin un SBCS correspondiente; esto se debe principalmente a una cuestión de compatibilidad. Sin embargo, como en el caso de otros conjuntos de caracteres DBCS de CJK, nunca se ha especificado el SBCS que se debe utilizar. Big5 siempre se ha definido como un DBCS, aunque cuando se utiliza debe ir acompañado de un SBCS adecuado no especificado y, por lo tanto, se utiliza como lo que algunas personas denominan un MBCS ; no obstante, Big5 por sí mismo, tal como se define, es estrictamente un DBCS.
El hecho de que no se especifique el SBCS que se va a utilizar implica que, en teoría, el SBCS utilizado puede variar de un sistema a otro. Hoy en día, el único SBCS posible que se puede utilizar es ASCII. Sin embargo, en los antiguos sistemas basados en DOS , la página de códigos 437 (con sus símbolos especiales adicionales en el área de código de control, incluida la posición 127) era mucho más común. Sin embargo, en un sistema Macintosh con el Kit de idioma chino o en un sistema Unix que ejecute el emulador de terminal cxterm, el SBCS emparejado con Big5 no sería la página de códigos 437.
Fuera del rango válido de Big5, los antiguos sistemas basados en DOS interpretaban rutinariamente las cosas de acuerdo con el SBCS que está emparejado con Big5 en ese sistema. En dichos sistemas, los caracteres 127 a 160, por ejemplo, probablemente no se evitaban porque producirían un Big5 no válido, sino que se usaban porque serían caracteres válidos en la página de códigos 437.
Por lo tanto, la caracterización moderna de Big5 como un MBCS que consiste en el DBCS de Big5 más el SBCS de ASCII es históricamente incorrecta y potencialmente defectuosa, ya que la elección del SBCS correspondiente fue, y teóricamente todavía es, bastante independiente del tipo de Big5 que se use.
La incapacidad del ASCII para soportar grandes conjuntos de caracteres chinos, japoneses y coreanos (CJK) llevó a los gobiernos y a la industria a buscar soluciones creativas para permitir que sus idiomas se reprodujeran en computadoras. Una variedad de métodos de entrada ad hoc y generalmente propietarios llevaron a los esfuerzos por desarrollar un sistema estándar. Como resultado, la codificación Big5 fue definida por el Instituto para la Industria de la Información de Taiwán en 1984.
El nombre "Big5" reconoce que el estándar surgió de la colaboración de cinco de las empresas de TI más grandes de Taiwán:
Big5 se popularizó rápidamente en Taiwán y en todo el mundo entre los chinos que utilizaban el conjunto de caracteres chinos tradicionales a través de su adopción en varios paquetes de software comerciales, en particular el sistema de entrada DOS chino E-TEN ( ETen Chinese System ). El gobierno de la República de China declaró a Big5 como su estándar a mediados de la década de 1980, ya que, para entonces, era el estándar de facto para usar el chino tradicional en las computadoras.
El Big-5 original solo incluye logogramas CJK de las Tablas de formas estándar de caracteres nacionales comunes (4808 caracteres) y caracteres nacionales menos comunes (6343 caracteres), pero no letras de nombres de personas, nombres de lugares, dialectos, química , biología y kana japonés. Como resultado, muchos programas de soporte del Big-5 incluyen extensiones para solucionar los problemas.
La gran cantidad de variaciones hace que UTF-8 (o UTF-16 o el estándar chino GB 18030 , que también es un formato de transformación Unicode completo, es decir, no solo para chino simplificado) sea una página de códigos más consistente para el uso moderno.
En el sistema operativo chino ETen (倚天), se agregan los siguientes puntos de código para agregar soporte para algunos caracteres presentes en la página de códigos de IBM 5550 pero ausentes en Big5 genérico:
0xA3C0
– 0xA3E0
: 33 caracteres de control.0xC6A1
– 0xC875
: círculo 1–10, corchete 1–10, números romanos 1–9 (i–ix), glifos radicales CJK, hiragana japonés, katakana japonés , caracteres cirílicos0xF9D6
– 0xF9FE
: los caracteres '碁', '銹', '恒', '裏', '墻', '粧' y '嫺', seguidos de 34 símbolos semigráficos adicionales .En algunas versiones de ETen, hay símbolos gráficos adicionales y caracteres chinos simplificados .
Microsoft (微軟) creó su propia versión de la extensión Big5 como página de códigos 950 para su uso con Microsoft Windows , que admite los puntos de código F9D6–F9FE de las extensiones de ETEN. En algunas versiones de Windows, el símbolo de la moneda del euro se asigna al punto de código Big-5 A3E1.
Después de instalar el parche HKSCS de Microsoft sobre el sistema operativo chino tradicional de Windows (o cualquier versión de Windows 2000 y posteriores con el paquete de idioma adecuado), las aplicaciones que utilizan la página de códigos 950 utilizan automáticamente una tabla de página de códigos oculta 951. La tabla admite todos los puntos de código de HKSCS-2001, excepto los puntos de código de compatibilidad especificados por el estándar. [8]
A diferencia de la página de códigos 950 de Microsoft, el CCSID 950 de IBM comprende la página de códigos de un solo byte 1114 (CCSID 1114) y la página de códigos de doble byte 947 (CCSID 947). [9] [10] [11] Incorpora extensiones ETEN para los bytes iniciales 0xA3 , [12] 0xC6 , [13] [14] 0xC7 [15] y 0xC8 , [13] [16] mientras que omite aquellos con el byte inicial 0xF9 (que incluye Microsoft), asignándolos en su lugar al Área de uso privado como caracteres definidos por el usuario. [13] [17] También incluye dos regiones de extensión que no son ETEN con bytes finales 0x81–A0 , es decir, fuera del rango de bytes finales Big5 habitual pero similar al rango de bytes finales Big5+: el área 5 tiene bytes iniciales 0xF2–F9 y contiene caracteres seleccionados por IBM, mientras que el área 9 tiene bytes iniciales 0x81–8C y es una región definida por el usuario. [18]
IBM se refiere a la actualización del símbolo del euro de su variante Big-5 como CCSID 1370, que incluye símbolos del euro de un solo byte ( 0x80 ) y de doble byte ( 0xA3E1 ). [19] Comprende la página de códigos de un solo byte 1114 (CCSID 5210) y la página de códigos de doble byte 947 (CCSID 21427). [19] [20] [21] Para una mejor compatibilidad con la variante de Microsoft en IBM Db2 , IBM también define la página de códigos de doble byte pura 1372 [22] y el CCSID de ancho variable asociado 1373, que corresponde a la página de códigos 950 de Microsoft. [23]
IBM asigna el CCSID 5471 a la página de códigos HKSCS-2001 Big5 (con CPGID 1374 como CCSID 5470 como componente de doble byte), [24] [25] el CCSID 9567 a la página de códigos HKSCS-2004 (con CPGID 1374 como CCSID 9566 como componente de doble byte), [26] y el CCSID 13663 a la página de códigos HKSCS-2008 (con CPGID 1374 como CCSID 13662 como componente de doble byte), [27] mientras que el CCSID 1375 se asigna a una página de códigos HKSCS en crecimiento, actualmente equivalente al CCSID 13663. [28]
Las fuentes ChinaSea (中國海字集) [29] son fuentes chinas tradicionales fabricadas por ChinaSea. Las fuentes rara vez se venden por separado, sino que se incluyen en otros productos, como la versión china de Microsoft Office 97. Las fuentes admiten kana japonés, kokuji y otros caracteres que faltan en Big-5. Como resultado, las extensiones de ChinaSea se han vuelto más populares que las extensiones admitidas por el gobierno. [ ¿a partir de? ] Algunas BBS de Hong Kong habían utilizado codificaciones en las fuentes de ChinaSea antes de la introducción de HKSCS.
La fuente 'Sakura' (日和字集 Sakura Version) se desarrolló en Hong Kong y está diseñada para ser compatible con HKSCS. Agrega compatibilidad con kokuji y dingbats propietarios (incluido Doraemon ) que no se encuentran en HKSCS.
Unicode-at-on (Unicode補完計畫), anteriormente extensión BIG5, extiende BIG-5 modificando las tablas de páginas de códigos, pero utiliza las extensiones de ChinaSea a partir de la versión 2. Sin embargo, con la quiebra de ChinaSea, el desarrollo tardío y la creciente popularidad de HKSCS y Unicode (el proyecto no es compatible con HKSCS), el éxito de esta extensión es limitado en el mejor de los casos.
A pesar de los problemas, los caracteres previamente asignados al Área de uso privado Unicode se reasignan a los equivalentes estandarizados al exportar caracteres al formato Unicode.
Los sitios web de Oriental Daily News y Sun Daily , pertenecientes a Oriental Press Group Limited (東方報業集團有限公司) en Hong Kong, usaban una fuente descargable con una codificación de extensión Big-5 diferente a la HKSCS.
El Ministerio de Educación de Taiwán proporcionó su propia fuente, la fuente del Ministerio de Educación de Taiwán (臺灣教育部造字檔) para uso interno.
La fuente del Consejo de Agricultura de Taiwán, el Yuan Ejecutivo, introdujo una fuente personalizada de 133 caracteres, la fuente del Consejo de Agricultura de Taiwán (臺灣農委會常用中文外字集) que incluye 84 caracteres del radical pez y 7 del radical pájaro .
La Fundación China para la Tecnología de Digitalización (中文數位化技術推廣委員會) introdujo Big5+ en 1997, que utilizaba más de 20 000 puntos de código para incorporar todos los logogramas CJK en Unicode 1.1. Sin embargo, los puntos de código adicionales excedían la definición original de Big-5 (Big5+ utiliza valores de bytes altos 81-FE y valores de bytes bajos 40-7E y 80-FE), lo que impedía su instalación en Microsoft Windows sin nuevos archivos de página de códigos.
Para permitir que los usuarios de Windows utilicen fuentes personalizadas, la Fundación China para la Tecnología de Digitalización introdujo Big-5E, que añadió 3954 caracteres (en tres bloques de puntos de código: 8E40-A0FE, 8140-86DF, 86E0-875C) y eliminó el kana japonés de la extensión ETEN. A diferencia de Big-5+, Big5E amplía Big-5 dentro de su definición original. Mac OS X 10.3 y posteriores admiten Big-5E en las fuentes LiHei Pro (儷黑 Pro.ttf) y LiSong Pro (儷宋 Pro.ttf).
La Fundación China para la Tecnología de Digitalización elaboró una definición Big5 y la incluyó en CNS 11643 en forma de nota, convirtiéndola en parte del estándar oficial en Taiwán.
Big5-2003 incorpora todos los caracteres Big-5 introducidos en las extensiones ETEN de 1984 (puntos de código A3C0-A3E0, C6A1-C7F2 y F9D6-F9FE) y el símbolo del euro. No se incluyeron caracteres cirílicos porque la autoridad afirmó que CNS 11643 no incluye dichos caracteres.
A finales de los años 1990, la Academia Sinica creó una fuente de procesamiento de datos china (漢字構形資料庫), cuya última versión 2.5 incluía 112.533 caracteres, algunos menos que las fuentes Mojikyo .
Hong Kong también adoptó Big5 para la codificación de caracteres. Sin embargo, el cantonés escrito tiene sus propios caracteres que no están disponibles en el conjunto de caracteres Big5 normal. Para resolver este problema, el Gobierno de Hong Kong creó las extensiones Big5 Government Chinese Character Set (GCCS) en 1995 y Hong Kong Supplementary Character Set en 1999. Las extensiones de Hong Kong se distribuyeron comúnmente como parche. Microsoft todavía lo distribuye como parche, pero también hay disponible una fuente Unicode completa en el sitio web del Gobierno de Hong Kong.
Existen dos esquemas de codificación de HKSCS: uno para el estándar de codificación Big-5 y el otro para el estándar ISO 10646. Después de la versión inicial, también existen HKSCS-2001 y HKSCS-2004. El HKSCS-2004 está alineado técnicamente con la norma ISO/IEC 10646:2003 y su Enmienda 1 publicada en abril de 2004 por la Organización Internacional de Normalización (ISO).
HKSCS incluye todos los caracteres de la extensión común ETen, además de algunos caracteres del chino simplificado, nombres de lugares, nombres de personas y frases en cantonés (incluidas blasfemias ).
A partir de 2020 [actualizar], la edición más reciente de HKSCS es HKSCS-2016; sin embargo, la última edición de HKSCS que codificó todos sus caracteres en Big5 fue HKSCS-2008, mientras que los caracteres agregados en ediciones más recientes se asignan solo a ISO 10646 / Unicode (como una extensión de glifo horizontal de Ideógrafos Unificados CJK cuando corresponde). [30] Además, de manera similar a la situación de Hong Kong, también hay caracteres que necesita Macao pero que no están incluidos en Big5 ni en HKSCS, por lo que se desarrolló el Conjunto de Caracteres Suplementarios de Macao , que comprende caracteres que no se encuentran en Big5 ni en HKSCS; este, sin embargo, tampoco está codificado en Big5. El primer lote de 121 caracteres MSCS se presentó para su inclusión o asignación a Unicode en 2009, [31] y la primera versión final de MSCS se estableció en 2020. [30]
Existen dos diseños de extensión Big5 principales para codificar kana, cirílico ruso y marcadores de lista en el rango de 0xC6A1 a 0xC875. Estos no son compatibles entre sí. [32] Se comparan en la siguiente tabla.
El diseño ETEN de kana y cirílico también es utilizado por las variantes HKSCS [33] (incluyendo HTML5 ) [34] y Unicode-At-On [35] , así como por la versión de IBM de la página de códigos 950, [36] [37] [38] y el diseño ETEN del kana (con cirílico omitido) también es utilizado por la variante Big5-2003. [39] Los archivos de mapeo publicados para Windows-950 no incluyen ninguno, y este rango Big5 está mapeado al Área de uso privado por la implementación de Windows-950 de International Components for Unicode . [40] La implementación del códec incorporado de Pythoncp950
está utilizando el diseño BIG5.TXT. [41] La versión clásica de Mac OS no incluye ninguno de los diseños. [3]