ISO 10646

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

El estándar internacional ISO/IEC 10646 define el Conjunto de Caracteres Universal (denominado también en inglés como: Universal Character Set - UCS) como un sistema codificación de caracteres en varios octetos. Contiene cerca de cien mil caracteres abstractos, cada uno de ellos identificado de forma precisa por un número entero denominado punto de código (code point). Se creó en el año 1993 por ello a veces también aparece como: ISO/IEC 10646-1:1993

En este conjunto se encuentran los diversos caracteres (letras, números, símbolos, ideogramas, logogramas, etc.) procedentes de muchos lenguajes, scripts,etc así como las diversas tradiciones de puntuación existentes en todos los idiomas del mundo, representadas en los códigos únicos UCS. Es de pensar que la inclusión de nuevos caracteres es constante, haciendo que el conjunto esté permanentemente en estado de actualización.

Desde el año 1991, el Unicode Consortium ha venido trabajando con el organismo ISO con el objeto de desarrollar el The Unicode Standard ("Unicode") y el ISO/IEC 10646 conjuntamente. El repertorio, el nombre de los caracteres, los puntos de código de la versión 2.0 de Unicode hacen un ajuste perfecto con las siete primeras publicaciones de la ISO/IEC 10646-1:1993. Tras la publicación de Unicode 3.0 en febrero de 2000, se fueron introduciendo nuevos caracteres en el UCS vía el ISO/IEC 10646-1:2000.

El conjunto UCS tiene cerca de 1,1 millones de código punto, pero sólo los primeros 65.536 (la Asociación de caracteres unicode, o BMP) han entrado en uso antes del año 2000. Esta situación comenzó a cambiar cuando República Popular China (RPC) solicitó en el año 2000 que los sistemas computarizados vendidos en su territorio tuvieran que soportar el GB18030, esta situación hizo que los sistemas que se tenían que vender en el RPC tuvieran que ir más allá del BMP. El conjunto tal y como está definido hoy en día ha dejado de forma deliberada algunos huecos con el objeto de poder incorporar en un futuro otros caracteres que no entren en conflicto con los actuales.

Formas de codificar el "Conjunto Universal de Caracteres"[editar]

El ISO 10646 define diversos "formas de codificación" de caracteres para el conjunto universal de caracteres (Universal Character Set). La más simple es la denominada, UCS-2 que emplea un valor de código simple (definido como uno o más números representando un código punto) entre 0 y 65,535 para cada carácter, y permite exactamente dos bytes (una palabra de 16-bit) para representar el valor. El UCS-2 permite por lo tanto una representación binaria de cada punto de código en el sistema BMP, haciendo que haya una correspondencia biunívoca entre el valor y el código punto que representa al carácter. El UCS-2 no puede representar puntos código fuera del conjunto BMP.

La primera enmienda a la edición original del UCS se definió como UTF-16, y era una extensión del UCS-2, para representar códigos punto fuera del BMP. En la actualidad existen una zona especial de códigos punto denominada S (Special) en el BMP que permanece sin asignar a caracteres. El UCS-2 no permite emplear valores de código para estos puntos de código, pero UTF-16 permite el empleo de los mismos en pares. Cada par consiste en un "elemento-RC" (una tupla de dos octetos que forman un R-octeto y un C-octeto de una secuencia total de cuatro octetos que se asocia a una celda en el espacio de códigos asignados a caracteres). El estándar Unicode ha adoptado también el UTF-16, pero en la terminología de Unicode, la mitad-alta de la zona de elementos se denomina "sustituciones altas" y la mitad inferior de la tabla se denomina "sustituciones bajas".

Otra codificación es la UCS-4 que emplea un carácter único entre 0 y (teóricamente) en hexadecimal hasta 7FFFFFFF para ser asignado a cada carácter (sin embargo el UCS para a 10FFFF y la ISO/IEC 10646 tiene comprometida asignaciones futuras de caracteres en este rango). El UCS-4 permite representaciones de cada valor mediante el empleo exacto de cuatro bytes (una palabra de 32-bits). El UCS-4 permite una representación binaria de cada código punto en el sistema UCS, incluyendo aquellos que están fuera del BMP. Como en el sistema de codifiación de UCS-2, cada carácter codificado posee una longitud fija en bytes.

Historia de la ISO 10646[editar]

The International Organization for Standardization (ISO) precisó el juego de caracteres en 1989 y publicó un borrador denominado ISO 10646 en 1990. Hugh McGregor Ross fue uno de los principales ideadores y arquitectos de este primer borrador. Aquel estándar difiere bastante del actual. Se definían en el primer borrador 128 grupos de 256 planos y cada uno de ellos de 256 columnas y 256 células, con ello se conseguía colocar aparentemente 2,147,483,648 caracteres, pero en la actualidad el estándar puede colocar sólo 679,477,248 caracteres, como las reglas prohíben valores de caracteres de control (0x00 hasta 0x1F y 0x80 hasta 0x9F, en notación hexadecimal). Por ejemplo la letra A tienen una posición en el grupo 0x20, plano 0x20, columna 0x20, célula 0x41.

Se podía cifrar los caracteres de este estándar primordial de la ISO 10646 en una de tres maneras:

  1. UCS-4, cuatro octetos para cada carácter, permitiendo la codificación simple de todos los caracteres;
  2. UCS-2, dos octetos para cada carácter, permitiendo la codificación del primer plano, 0x20, el plano multilingüe básico, conteniendo los primeros 36.864 puntos de código, directo, y otros planos y grupos cambiando a ellos con ISO 2022 secuencias de escape;
  3. UTF-1, que codifica todos los caracteres en secuencias de octetos de longitud que varía (1 a 5 octetos, que no contienen ningún carácter de control).

En 1990, salieron a la luz dos iniciativas para crear un conjunto de caracteres universal: Unicode, con 16 bits para cada carácter (65.536 caracteres posibles), e ISO 10646. Las compañías del software rechazaron aceptar el requisito de la complejidad y del tamaño del estándar de ISO y lograron convencer a un número de organismos nacionales de la ISO para que votaran contra él. Los estandarizadores de la ISO convinieron que no podrían continuar apoyando el estándar en su estado actual y que negociarían la unificación de su estándar con Unicode. Ocurrieron dos cambios tras esta situación: el abandono de la limitación sobre los caracteres (prohibición de los valores del carácter de control), los caracteres así de permiso hasta 0x0000101F; y la sincronización del repertorio del plano multilingüe básico con el de Unicode.

Mientras tanto, con el paso del tiempo, la situación cambió en el estándar mismo de Unicode: los 65.536 caracteres empezaron a parecer escasos, y el estándar de la versión a partir de la 2.0 realizan la codificación de 1.112.064 caracteres por medio de la codificación UTF-16. Por esa razón, la ISO 10646 fue limitada para contener tantos caracteres como podían ser codificados por UTF-16, y no más. Es decir, un poco sobre más de un millón de caracteres en vez sobre de 2.000 millones. La codificación UCS-4 de ISO 10646 fue incorporada en el estándar de Unicode con la limitación a la gama UTF-16 y bajo el nombre de UTF-32. En cuanto a UTF-1, nadie lo empleó, debido en parte a su mala codificación del diseño (no existía forma de distinguir entre la funcionalidad de los octetos, un problema similar a la codificiación Shift-JIS del japonés) y su degradación de las prestaciones (muchas operaciones de división). Rob Pike y Ken Thompson, los diseñadores el plan 9 de Bell Labs del sistema operativo, idearon uno nuevo, rápidamente y la codificación mezclada bien diseñada de la anchura, que vinieron ser llamadas UTF-8.

Campo de Aplicaciones y Alcance[editar]

El Juego Universal de Caracteres en código de múltiples octetos (UCS) es aplicable a la representación, transmisión, intercambio, tratamiento, almacenamiento, introducción y presentación de prácticamente todos los lenguajes del mundo en forma escrita. La parte básica de la norma, de 1993, especifica la arquitectura general de esta codificación de cuatro octetos (32 bits) compendio de numerosos juegos de caracteres de ámbito nacional e internacional. Define los términos utilizados en su redacción, así como la estructura general de UCS. Especifica asimismo en qué consiste el Plano Multilenguaje Básico (BMP), una reducción del código a 2 octetos (16 bits) y especifica el conjunto de símbolos gráficos de que se compone y sus representaciones codificadas. Explica cuáles son las representaciones codificadas de las funciones de control, y la gestión de futuras adiciones a este juego de caracteres.

Correlación con Unicode[editar]

  • ISO/IEC 10646-1:1993 ≈ Unicode 1.1
  • ISO/IEC 10646-1:2000 ≈ Unicode 3.0
  • ISO/IEC 10646-2:2001 ≈ Unicode 3.2
  • ISO/IEC 10646:2003 ≈ Unicode 4.0
  • ISO/IEC 10646:2003 más enmienda 1 ≈ Unicode 4.1
  • ISO/IEC 10646:2003 más enmienda 1, enmienda 2, y parte de la enmienda 3 ≈ Unicode 5.0

Véase: §D.1 del The Unicode Standard para más detalles.

Conexión con otras normas[editar]

Los primeros 127 caracteres del Plano Multilenguaje Básico (BMP) utilizado para el código de intercambio de 16-bit se corresponden con ISO 646, la versión internacional de ASCII. Los caracteres que constituyen la segunda mitad de la primera fila son los utilizados por ISO 8859-1, el juego Latin-1. ISO/IEC DIS 14755 -- Métodos de introducción de caracteres del repertorio ISO/IEC 10646 con un teclado u otros dispositivos de entrada. Se prevé que se convierta muy pronto en el código básico de representación de la información de todos los sistemas de 16 y 32 bits.

Véase también[editar]

Unicode