stringtranslate.com

Conjunto de caracteres codificados universales

El conjunto de caracteres codificados universales ( UCS , Unicode ) es un conjunto estándar de caracteres definido por la norma internacional ISO / IEC  10646, Tecnología de la información — Conjunto de caracteres codificados universales (UCS) (más enmiendas a esa norma), que es la base de muchos codificaciones de caracteres , que mejoran a medida que se agregan caracteres de sistemas de escritura no representados anteriormente.

La UCS tiene más de 1,1 millones de posibles puntos de código disponibles para su uso/asignación, pero sólo los primeros 65.536, que es el Plano Básico Multilingüe (BMP), habían entrado en uso común antes del año 2000. Esta situación comenzó a cambiar cuando la República Popular China ( PRC) dictaminó en 2006 que todo el software vendido en su jurisdicción tendría que soportar GB 18030 . Esto requería que el software destinado a la venta en la República Popular China fuera más allá del BMP. [ se necesita aclaración ]

El sistema deja deliberadamente muchos puntos de código no asignados a caracteres, incluso en el BMP. Hace esto para permitir una futura expansión o minimizar los conflictos con otras formas de codificación.

La edición original de UCS definió UTF-16 , una extensión de UCS-2, para representar puntos de código fuera de BMP. Un rango de puntos de código en la Zona S (Especial) del BMP permanece sin asignar a caracteres. UCS-2 no permite el uso de valores de código para estos puntos de código, pero UTF-16 permite su uso en pares. Unicode también adoptó UTF-16, pero en la terminología de Unicode, los elementos de la zona media alta se convierten en "sustitutos altos" y los elementos de la zona media baja se convierten en "sustitutos bajos". [ se necesita aclaración ]

Otra codificación, UTF-32 (anteriormente denominada UCS-4), utiliza cuatro bytes (32 bits en total) para codificar un solo carácter del espacio de código. De este modo, UTF-32 permite una representación binaria de cada punto de código en las API y aplicaciones de software.

Historia

La Organización Internacional de Normalización (ISO) se propuso componer el juego de caracteres universal en 1989 y publicó el borrador de la norma ISO 10646 en 1990. Hugh McGregor Ross fue uno de sus principales arquitectos.

Este trabajo se produjo independientemente del desarrollo del estándar Unicode , que había estado en desarrollo desde 1987 por Xerox y Apple .

El borrador original de la norma ISO 10646 difería notablemente de la norma actual. Definió:

para un total aparente de 2.147.483.648 caracteres, pero en realidad el estándar sólo podía codificar 679.477.248 caracteres, ya que la política prohibía valores de bytes de los códigos de control C0 y C1 (0x00 a 0x1F y 0x80 a 0x9F, en notación hexadecimal ) en cualquiera de los cuatro bytes. especificando un grupo, plano, fila y celda. La letra mayúscula latina A, por ejemplo, tenía una ubicación en el grupo 0x20, plano 0x20, fila 0x20, celda 0x41.

Se podrían codificar los caracteres de este estándar ISO/IEC 10646 primordial de una de tres maneras:

  1. UCS-4, cuatro bytes por cada carácter, lo que permite la codificación sencilla de todos los caracteres;
  2. UCS-2, dos bytes por cada carácter, que permite la codificación del primer plano, 0x20, el plano multilingüe básico, que contiene los primeros 36.864 puntos de código, de forma sencilla, y otros planos y grupos conmutándolos con secuencias de escape ISO/IEC 2022 ;
  3. UTF-1 , que codifica todos los caracteres en secuencias de bytes de longitud variable (de 1 a 5 bytes, cada uno de los cuales no contiene códigos de control).

Por lo tanto, en 1990 existían dos iniciativas para un juego de caracteres universal: Unicode , con 16 bits por cada carácter (65.536 caracteres posibles), e ISO/IEC 10646. Las empresas de software se negaron a aceptar los requisitos de complejidad y tamaño del estándar ISO y Pudimos convencer a varios organismos nacionales de ISO para que votaran en contra. [ cita necesaria ] Los funcionarios de ISO se dieron cuenta de que no podían continuar respaldando el estándar en su estado actual y negociaron la unificación de su estándar con Unicode. Se produjeron dos cambios: el levantamiento de la limitación de caracteres (prohibición de valores de código de control), abriendo así puntos de código para su asignación; y la sincronización del repertorio del Plano Básico Multilingüe con el de Unicode.

Mientras tanto, con el paso del tiempo, la situación cambió en el propio estándar Unicode: 65.536 caracteres llegaron a parecer insuficientes, y el estándar a partir de la versión 2.0 en adelante admite la codificación de 1.112.064 puntos de código de 17 planos mediante el mecanismo sustituto UTF-16. . Por esa razón, ISO/IEC 10646 se limitó a contener tantos caracteres como pudiera codificar UTF-16 y nada más, es decir, un poco más de un millón de caracteres en lugar de más de 679 millones. La codificación UCS-4 de ISO/IEC 10646 fue incorporada al estándar Unicode con la limitación al rango UTF-16 y bajo el nombre de UTF-32 , aunque casi no tiene uso fuera de los datos internos de los programas.

Rob Pike y Ken Thompson , los diseñadores del sistema operativo Plan 9 , idearon una codificación de ancho mixto nueva, rápida y bien diseñada que también era compatible con versiones anteriores de ASCII de 7 bits , que pasó a denominarse UTF-8 . 1] y actualmente es la codificación UCS más popular.

Diferencias con Unicode

ISO/IEC 10646 y Unicode tienen un repertorio y números idénticos: existen los mismos caracteres con los mismos números en ambos estándares, aunque Unicode lanza nuevas versiones y agrega nuevos caracteres con más frecuencia. Unicode tiene reglas y especificaciones fuera del alcance de ISO/IEC 10646. ISO/IEC 10646 es un mapa de caracteres simple, una extensión de estándares anteriores como ISO/IEC 8859 . Por el contrario, Unicode agrega reglas de intercalación , normalización de formularios y el algoritmo bidireccional para escrituras de derecha a izquierda como el árabe y el hebreo. Para la interoperabilidad entre plataformas, especialmente si se utilizan scripts bidireccionales, no basta con admitir ISO/IEC 10646; Se debe implementar Unicode.

Para admitir estas reglas y algoritmos, Unicode agrega muchas propiedades a cada carácter del conjunto, como propiedades que determinan la clase bidireccional predeterminada de un carácter y propiedades para determinar cómo se combina el carácter con otros caracteres. Si el carácter representa un valor numérico como el número europeo '8' o la fracción vulgar '¼', ese valor numérico también se agrega como propiedad del carácter. Unicode pretende que estas propiedades admitan el manejo de texto interoperable con una combinación de idiomas.

Algunas aplicaciones admiten caracteres ISO/IEC 10646 pero no son totalmente compatibles con Unicode. Una de esas aplicaciones, Xterm , puede mostrar correctamente todos los caracteres ISO/IEC 10646 que tienen una asignación de carácter a glifo uno a uno [ se necesita aclaración ] y una direccionalidad única. Puede manejar algunas marcas combinadas mediante métodos simples de superposición, pero no puede mostrar hebreo (bidireccional), devanagari (un carácter para muchos glifos) o árabe (ambas características). La mayoría de las aplicaciones GUI utilizan rutinas de dibujo de texto estándar del sistema operativo que manejan dichos scripts, aunque las aplicaciones en sí no siempre los manejan correctamente.

Citando el conjunto de caracteres codificados universales

ISO/IEC 10646 , una cita general e informal de la familia de normas ISO/IEC 10646, es aceptable en la mayor parte de la prosa. Y aunque es un estándar independiente, el término Unicode se utiliza con la misma frecuencia, de manera informal, cuando se habla de UCS. Sin embargo, cualquier referencia normativa a la UCS como publicación debe citar el año de la edición en el formato ISO/IEC 10646:{año} , por ejemplo: ISO/IEC 10646:2014 .

Relación con Unicode

Desde 1991, el Consorcio Unicode y la ISO / IEC han desarrollado el Estándar Unicode ("Unicode") y la ISO/IEC 10646 en conjunto. El repertorio, los nombres de los caracteres y los puntos de código de Unicode Versión 2.0 coinciden exactamente con los de ISO/IEC 10646-1:1993 con sus primeras siete enmiendas publicadas. Después de la publicación de Unicode 3.0 en febrero de 2000, los caracteres nuevos y actualizados correspondientes ingresaron al UCS a través de ISO/IEC 10646-1:2000. En 2003, las partes 1 y 2 de ISO/IEC 10646 se combinaron en una sola parte, que desde entonces ha tenido una serie de modificaciones agregando caracteres al estándar en aproximadamente sincronía con el estándar Unicode.

Ver también

Normas relacionadas:

Referencias

  1. ^ Pike, Rob (3 de abril de 2003). "Historia de UTF-8". Archivado desde el original el 23 de mayo de 2016.

enlaces externos