Diferencia entre revisiones de «Unicode»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Camilo (discusión · contribs.)
m Revertidos los cambios de Marco Regueira a la última edición de 87.222.118.109
Camilo (discusión · contribs.)
m Revertidos los cambios de Camilo (disc.) a la última edición de Marco Regueira
Línea 5: Línea 5:


Es posible que, a causa de ello, haya lagunas de contenido o deficiencias de formato. Por favor, antes de realizar correcciones mayores o reescrituras, contacta con él en su página de usuario o [[{{NAMESPACE}} Discusión:{{PAGENAME}}|la página de discusión]] del artículo para poder coordinar la redacción.
Es posible que, a causa de ello, haya lagunas de contenido o deficiencias de formato. Por favor, antes de realizar correcciones mayores o reescrituras, contacta con él en su página de usuario o [[{{NAMESPACE}} Discusión:{{PAGENAME}}|la página de discusión]] del artículo para poder coordinar la redacción.
</div>
</div></div>
</div>


'''Unicode''' ([[acrónimo]] formado del idioma inglés por ''«Universal»'' Universal y ''«Code»'' Código) es un [[estandarización|estándar]] de codificación de caracteres diseñado para facilitar el tratamiento informático, transmision y visualización de textos de múltiples lenguajes y disciplinas técnicas además de textos clásicos de lenguas muertas.
El '''Estándar Unicode''' ([[acrónimo]] formado del idioma inglés por ''«Universal»'' Universal y ''«Code»'' Código) es un [[estandarización|estándar]] de codificación de caracteres diseñado para facilitar el tratamiento informático, transmision y visualización de textos de múltiples lenguajes y disciplinas técnicas además de textos clásicos de lenguas muertas.


Unicode especifica un nombre e identificador numérico único para cada caracter o símbolo, el ''code point'' o ''punto de código'', además de otras informaciones necesarias para su uso correcto: direccionalidad, capitalización y otros atributos. Unicode trata los caracteres alfabéticos, ideográficos y símbolos de forma equivalente, lo que significa que se pueden mezclar en un mismo texto sin la introducción de marcas o caracteres de control <ref name="UNICODE-ABOUT">{{cita web |url= http://www.unicode.org/standard/standard.html |título= About the Unicode Standard |editorial= Unicode, Inc. |fechaacceso=21 de mayo de 2009}}</ref>.
Unicode especifica un nombre e identificador numérico único para cada caracter o símbolo, el ''code point'' o ''punto de código'', además de otras informaciones necesarias para su uso correcto: direccionalidad, capitalización y otros atributos. Unicode trata los caracteres alfabéticos, ideográficos y símbolos de forma equivalente, lo que significa que se pueden mezclar en un mismo texto sin la introducción de marcas o caracteres de control <ref name="UNICODE-ABOUT">{{cita web |url= http://www.unicode.org/standard/standard.html |título= About the Unicode Standard |editorial= Unicode, Inc. |fechaacceso=21 de mayo de 2009}}</ref>.
Línea 47: Línea 46:
Actualmente se está trabajando en la inclusión de nuevos grupos de símbolos como los gerogríficos egipcios o mayas <ref name="UNICODE-ROADMAP">{{cita web |url= http://www.unicode.org/roadmaps/index.html |título= Roadmaps to Unicode |editorial= Unicode, Inc. |fechaacceso=21 de mayo de 2009}}</ref>. Otros alfabetos propuestos han sido descartados por distintas razones <ref name="UNICODE-ROADMAP"></ref><ref name="UNICODE-RECHAZO">{{cita web |url= http://unicode.org/alloc/nonapprovals.html |título= Archive of Notices of Non-Approval |editorial= Unicode, Inc. |fechaacceso=21 de mayo de 2009}}</ref>, como por ejemplo el alfabeto [[Klingon]].
Actualmente se está trabajando en la inclusión de nuevos grupos de símbolos como los gerogríficos egipcios o mayas <ref name="UNICODE-ROADMAP">{{cita web |url= http://www.unicode.org/roadmaps/index.html |título= Roadmaps to Unicode |editorial= Unicode, Inc. |fechaacceso=21 de mayo de 2009}}</ref>. Otros alfabetos propuestos han sido descartados por distintas razones <ref name="UNICODE-ROADMAP"></ref><ref name="UNICODE-RECHAZO">{{cita web |url= http://unicode.org/alloc/nonapprovals.html |título= Archive of Notices of Non-Approval |editorial= Unicode, Inc. |fechaacceso=21 de mayo de 2009}}</ref>, como por ejemplo el alfabeto [[Klingon]].


== Elementos del estándar Unicode. ==
== Elementos del estándar Unicode ==


=== Caracteres, puntos de código y espacio de códigos ===
=== Caracteres, puntos de código y espacio de códigos ===


El elemento básico es el carácter. Se considera un caracter al elemento más pequeño de un lenguaje escrito con significado. Esto incluye letras, signos diacríticos, caracteres de puntuacion y otros símbolos. Los caracteres se agrupan en alfabetos. Se considideran diferentes los caracteres de alfabetos distintos aunqe compartan forma y significación.
El elemento básico es el carácter. Se considera un caracter al elemento más pequeño de un lenguaje escrito con significado. Esto incluye letras, signos diacríticos, caracteres de puntuacion y otros símbolos. Los caracteres se agrupan en alfabetos. Se consideran diferentes los caracteres de alfabetos distintos aunque compartan forma y significación.


A cada caracter se le asigna un número que lo identifica. Este número, denominado punto de código o ''code point''. Cuando un se ha asignado un código a un caracter se dice que dicho caracter está '''codificado'''. El espacio para códigos tiene 1.114.112 posiciones posibles (1x10FFFF).
A cada caracter se le asigna un número que lo identifica, denominado punto de código o ''code point''. Cuando se ha asignado un código a un caracter se dice que dicho caracter está ''codificado''. El espacio para códigos tiene 1.114.112 posiciones posibles (0x10FFFF). Los puntos de codigo se expresan utilizando utilizando valores hexadecimales agregando el prefijo U+. El valor hexadecimal se completa con ceros hasta 4 dígitos hexadecimales cuando es necesario; si es de longitud mayor que 4 dígitos no se agregan ceros.


=== Organización del espacio de códigos ===
==== Base de datos de caracteres ====


El conjunto de caracteres codificados por Unicode, es la Base de Datos Unicode o UCD (''Unicode Character Database'') que incluye mas información sobre dichos caracteres: alfabeto al que pertenece, nombre, clasificación, capitalización, orientación y otras formas de uso, variantes estandarizadas, etc.
Con excepciones, los caracteres codificados sea agrupan siguiendo categorías como alfabeto o sistema de escritura, de forma que caracteres relacionados se encuentren cerca en tablas de codificación.


==== Planos ====
==== Organización del espacio de códigos ====


Con excepciones, los caracteres codificados sea agrupan en el espacio de códigos siguiendo categorías como alfabeto o sistema de escritura, de forma que caracteres relacionados se encuentren cerca en tablas de codificación.
Por conveniencia se ha dividido el espacio de codigos en grandes grupos denominados ''planos''. Cada plano contiene un máximo de 65535 caracteres. Dado un punto de código expresado en hexadecimal, los 4 útimos dígitos determinan la posición del caracter en el plano.

=== Planos ===

Por conveniencia se ha dividido el espacio de codigos en grandes grupos denominados ''planos''. Cada plano contiene un máximo de 65.535 caracteres. Dado un punto de código expresado en hexadecimal, los 4 útimos dígitos determinan la posición del caracter en el plano.


* '''Plano básico multilingüe''': BMP o plano 0. Contiene la mayor parte de los alfabetos modernos, incluyendo los caracteres más comunes del sistema CJK, otros caracteres históricos o poco habituales y 6.400 posiciones reservadas para uso privado.
* '''Plano básico multilingüe''': BMP o plano 0. Contiene la mayor parte de los alfabetos modernos, incluyendo los caracteres más comunes del sistema CJK, otros caracteres históricos o poco habituales y 6.400 posiciones reservadas para uso privado.
Línea 73: Línea 76:
* '''Planos de uso privado''': Planos 15 y 16. Reservados para uso privado por fabricantes de software.
* '''Planos de uso privado''': Planos 15 y 16. Reservados para uso privado por fabricantes de software.


== Mapeo y codificaciones ==
=== Áreas y Bloques ===
=== Estándar ===
Primero se publicó ''El Estándar Unicode'' (ISBN 0-321-18578-1) en [[1991]], y sigue desarrollando estándares basados en el original. Unicode fue desarrollado conjuntamente con la [[Organización Internacional para la Estandarización]] (ISO) y comparte su repertorio con [[ISO/IEC 10646]]. Unicode e ISO/IEC 10646 funcionan equivalentemente como codificadores de caracteres, pero el ''Estándar Unicode'' contiene mucha más información para implementar, cubriendo en profundidad, temas como la codificación ''bitwise'' y ''collation'' {{cita requerida}}.
Unicode enumera una vasta cantidad de propiedades para los caracteres, incluyendo aquellas necesarias para soportar [[texto bidireccional]]. Ambos estándares utilizan una terminología ligeramente diferente.
Un punto de código se expresa como "U+" seguido del número [[hexadecimal]] del código del carácter. Para puntos del ''plano básico multilingüe'' (BMP), se usan cuatro dígitos completados con ceros por la izquierda si es necesario. Para los puntos de código fuera de BMP no se completa con ceros. Las versiones antiguas del mismo estándar utilizaban notaciones similares, pero con reglas ligeramente diferentes. Por ejemplo, Unicode 3.0 utlizaba "U-" seguido de ocho dígitos, y permitía que se utilizara "U+" solamente con exactamente 4 dígitos para poder indicar una unidad de código, no un punto de código.
==== Historia de las revisiones de Unicode ====
* [[1991]] Unicode 1.0
* [[1993]] Unicode 1.1
* [[1996]] Unicode 2.0
* [[1998]] Unicode 2.1
* [[1999]] Unicode 3.0 — cubría 16 bits del Plano Básico Multilingüe del ISO 10646-1:2000
* [[2001]] Unicode 3.1 — introduce Planos Suplementarios procedentes del ISO 10646-2, que introduce caracteres extras.
* [[2002]] Unicode 3.2
* [[2003]] Unicode 4.0
* [[2005]] Unicode 4.1
* [[2006]] Unicode 5.0
* [[2008]] Unicode 5.1


Los distintos planos se dividen, en áreas de direccionamiento en función de los tipos generales que incluyen. Esta división es convencional, no reglada y puede variar con el tiempo. Las áreas se dividen, a su vez, en bloques. Los bloques están definidos normativamente y son rangos consecutivos del espacio de códigos. Los bloques se utilizan para formar las tablas impresas sde caracteres pero no deben tomarse como definiciones de grupos significativos de caracteres.

== Tratamiento de la informacion ==
=== Formas de codificación ===
=== Formas de codificación ===


Los puntos de codigo de Unicode se identifican por un número entero. Según su arquitectura, un ordenador utilizará unidades de 8, 16 o 32 bits para representar dichos enteros. Las ''formas de codificación'' de Unicode reglamentan la forma en que los puntos de código se transformará en unidates tratables por el computador.
La lógica interna de la mayoría del software de 8 bits permite de forma típica solamente 8 bits para cada carácter, haciendo imposible utilizar más de 256 puntos de código sin procesamiento especial. El software de 16 bits solamente puede guardar poco más de 6 decenas de miles de caracteres. Unicode, por otro lado ha definido más de 90.000 caracteres codificados. Los diseñadores de los sistemas entonces han tenido que sugerir muchos métodos y mecanismos para implementar Unicode; el método implementado depende del espacio de almacenamiento disponible, la compatibilidad de los códigos fuentes y la inter-operatividad con otros sistemas.


Unicode define tres formas de codificación <ref name="UNICODE-UTF">{{cita libro |autor= The Unicode Consortium |editor= Julie D. Allen, Joe Becker (et al.) |título= Unicode 5.0 standard |url=http://www.unicode.org/versions/Unicode5.0.0/bookmarks.html
Unicode define tres formas de codificación <ref name="UNICODE-UTF">{{cita libro |autor= The Unicode Consortium |editor= Julie D. Allen, Joe Becker (et al.) |título= Unicode 5.0 standard |url=http://www.unicode.org/versions/Unicode5.0.0/bookmarks.html
|capítulo=2.5 Encoding Forms|urlcapítulo=http://www.unicode.org/versions/Unicode5.0.0/ch02.pdf |fecha= [[octubre de 2006]] |año= [[2006]] |mes= [[octubre]] |editorial= Addisson-Wesley |idioma= Inglés |isbn= 0-321-48091-0}}</ref> bajo el nombre '''UTF''' o Formato de Transformación Unicode (''Unicode Transformation Format''):
|capítulo=2.5 Encoding Forms|urlcapítulo=http://www.unicode.org/versions/Unicode5.0.0/ch02.pdf |fecha= [[octubre de 2006]] |año= [[2006]] |mes= [[octubre]] |editorial= Addisson-Wesley |idioma= Inglés |isbn= 0-321-48091-0}}</ref> bajo el nombre '''UTF''' o Formato de Transformación Unicode (''Unicode Transformation Format''):


* [[UTF-8]] — una codificación de 8 bits de longitud variable
* [[UTF-8]] — codificación orientada a byte con símbolos de logitud variable.
* [[UTF-16]] — una codificación de 16 bits de longitud variable optimizada para la representación del plano básico multilíngüe (BMP)<ref name="UNICODE-UTF"></ref>.
* [[UTF-16]] — codificación de 16 bits de longitud variable optimizada para la representación del plano básico multilingüe (BMP)<ref name="UNICODE-UTF"></ref>.
* [[UTF-32]] — una codificación de 32 bits de longitud fija, y la más sencilla de las tres.
* [[UTF-32]] — codificación de 32 bits de longitud fija, y la más sencilla de las tres.


Las ''formas de codificación'' se limitan a describir el modo en que se representan los puntos de código en formato inteligible por la máquina. A partir de las 3 formas identificadas se definen 7 esquemas de codificación.
A continuación se describen en el mismo orden algunos detalles sobre cada tipo de codificación:


=== Esquemas de codificación ===
Las tres formas de codificación <ref name="UNICODE-UTF"></ref> especifican la [[BOM]] o la Marca de Orden de Byte al principio de los archivos de texto. Algunos desarrolladores de software lo han adoptado para otras codificaciones. En el caso de UTF-8, al ser esta una codificación orientada a byte, no necesita una indicación de orden de byte y su intención es marcar el archivo indicando que contiene texto Unicode. El punto de código de la BOM, U+FEFF tiene la importante propiedad de la inambigüedad, sin importar la codificación Unicode utilizada. Las unidades <code>FE</code> y <code>FF</code> nunca aparecen en [[UTF-8]]; U+FFFE (el resultado del intercambio the U+FEFF) no es un carácter válido, y U+FEFF equivale a longitud-cero o espacio sin ruptura (un carácter sin apariencia y sin otro efecto más que prevenir la formación de [[Ligadura (tipografía)|ligaduras]]). El mismo carácter convertido a UTF-8 se convierte en la siguiente secuencia de bytes <code>EF BB BF</code>.


Los ''esquemas de codificación'' <ref name="UNICODE-UTF"></ref> tratan de la forma en que se serializa la información codificada. La seguridad en los intercambios de información entre sistemas heterogéneos requiere la implementación de sistemas que permitan determinar el orden correcto de los bits y bytes y garantizar que la reconstrucción de la información es correcta. Una diferencia fundamental entre [[Unidad_Central_de_Procesamiento|procesadores]] es el orden de disposición de los bytes en palabras de 16 y 32 bits, lo que se denomina [[endianness]]. Los esquemas de codificación deben garantizar que es posible que los extremos de una comunicación saben cómo interpretar la información recibida. A partir de las 3 formas de codificación se definen 7 esquemas. A pesar de que comparten nombre no deben confundirse esquemas y formas de codificación.
UTF-8 utiliza de uno hasta 4 bytes por cada punto de código y, siendo relativamente compacto (para la escritura basada en caracteres latinos) y compatible con ASCII.


UTF-16, mientras tanto, normalmente utiliza 16 bits por cada punto de código (al igual que UCS-2), aunque en algunos casos requiere 32, es utilizada por muchas [[Interfaz de programación de aplicaciones|APIs de programación]]. El uso de UTF-16 se presenta mayormente por razones históricas que datan desde los días en que la representación primaria de Unicode era UCS-2, o cuando se requería una interfaz con otras [[Interfaz de programación de aplicaciones|APIs]] que usaran UTF-16. UTF-16 es el formato estándar para la [[Interfaz de programación de aplicaciones|API]] de Windows (aunque el soporte para sustitutos no está habilitado por omisión), para la de Java y la de ambientes .NET bytecode.


{| class="wikitable"
En UTF-32, un código de 32 bits funciona como una representación directa y confiable de cualquier punto de código de un carácter (aunque la [[endianness]], que varía dependiendo de la arquitectura del procesador de cada computadora, afecta como se representa el valor cada punto de código en una secuencia de bits). Aunque en otros casos, cada código puede ser representado por un código de valores de números variables. UTF-32 es utilizado con muy poca frecuencia para almacenamiento y transmisión de datos, ya que en la mayor parte de las ocasiones desperdician (dejan en ceros) de 21 de los 32 bits asignados a cada punto de código; lo que sí se está volviendo común {{cita requerida}} es la implementación del código UCS-4 en la programación para la representación interno del texto codificado, dado que su manipulación es más natural y simple.
|-
| '''Esquema de codificación '''
| '''[[Endianness]]'''
| '''Acepta BOM'''
|-
| UTF-8
| No aplicable
| Sí
|-
| UTF-16
| Big-endian o Little-endian
| Sí
|-
| UTF-16BE
| Big-endian
| No
|-
| UTF-16LE
| Little-endian
| No
|-
| UTF-32
| Big-endian o Little-endian
| Sí
|-
| UTF-32BE
| Big-endian
| No
|-
| UTF-32LE
| Little-endian
| No
|}

Unicode define una marca especial, ''Byte order mark'' o [[BOM]] al inicio de un fichero o una comunicación para hacer explícita la ordenación de bytes. Cuando un protocolo superior especifica el orden de bytes, la marca no es nesaria y puede omitirse dando lugar a los esquemas de la lista anterior con sufijo ''BE'' o ''LE''.

La unidad de codificacion en UTF-8 es el byte por lo que no necesita una indicación de orden de byte. El estándar ni requiere ni recomienda la utilización de BOM, pero lo admite como marca de que el texto es Unicode o como resultado de la conversión de otros esquemas.


=== Composición de caracteres contra caracteres prediseñados ===
=== Composición de caracteres contra caracteres prediseñados ===
Línea 127: Línea 153:


Otras personas han denigrado el Unicode al afirmar que es un complot{{cita requerida}} contra las culturas asiáticas perpetrado por los occidentales sin ningún conocimiento de como son usados los caracteres en chino, coreano o japonés, a pesar de que un buen número de expertos de los tres continentes en el [[Grupo Ideográfico del Poniente]] (IRG por sus siglas en inglés). El IRG avisa al consorcio del Unicode y al [[ISO]] y a la [[Unificación Han]] de las nuevas adiciones al repertorio y de la identificación de símbolos en los tres lenguajes sobre cuales de ellos se pueden tratar como variaciones de estilo del mismo carácter histórico. La unificación Han se ha convertido en uno de los aspectos más controvertidos de Unicode.
Otras personas han denigrado el Unicode al afirmar que es un complot{{cita requerida}} contra las culturas asiáticas perpetrado por los occidentales sin ningún conocimiento de como son usados los caracteres en chino, coreano o japonés, a pesar de que un buen número de expertos de los tres continentes en el [[Grupo Ideográfico del Poniente]] (IRG por sus siglas en inglés). El IRG avisa al consorcio del Unicode y al [[ISO]] y a la [[Unificación Han]] de las nuevas adiciones al repertorio y de la identificación de símbolos en los tres lenguajes sobre cuales de ellos se pueden tratar como variaciones de estilo del mismo carácter histórico. La unificación Han se ha convertido en uno de los aspectos más controvertidos de Unicode.

Unicode es duramente criticado{{cita requerida}} por no permitir el uso de los símbolos alternos y antiguos del [[kanji]], lo cual, se dice, complica el procesamiento del japonés antiguo y de nombres japoneses poco usuales. Estas críticas persisten aunque Unicode sigue completamente las recomendaciones de maestros del lenguaje japonés y del gobierno japonés. Incluso ha habido numerosos intentos de crear un Unicode alternativo. Entre los muchos propuestos se encuentra el [[TRON]] (aunque no es ampliamente adoptado en Japón, algunos, en especial aquellos que necesitan manejar texto escrito en japonés antiguo, favorecen este estándar); y el [[UTF-2000]]]. Aunque es verdad que muchos símbolos antiguos no fueron incluidos en las primeras versiones del Unicode estándar, Unicode 4.0 contiene más de 90,000 [[Unificación Han|caracteres Han]], muchísimos más que cualquier otro diccionario o estándar, y que el proceso de agregar caracteres de la temprana escritura de China, Corea y Japón continua.


El incluir el [[Lenguaje Thai]] también ha sido criticado por su orden ilógico de caracteres. Esta complicación es debido a que el Unicode ha heredado el [[Estándar Industrial Thai 620]], el cual funcionaba de la misma manera. Este problema de orden complica el proceso de comparación de Unicode.
El incluir el [[Lenguaje Thai]] también ha sido criticado por su orden ilógico de caracteres. Esta complicación es debido a que el Unicode ha heredado el [[Estándar Industrial Thai 620]], el cual funcionaba de la misma manera. Este problema de orden complica el proceso de comparación de Unicode.
Línea 144: Línea 168:


Estos caracteres se manifiestan directamente como [[bytes]] de acuerdo a la documentación de cada codificacón, si ésta es compatible con Unicode, o bien el usuario puede escribirlos directamente como referencias numéricas de caracteres basado en el punto código de Unicode de cada carácter, siempre y cuando la codificación de cada documento permita utilizar los dígitos necesarios para escribir las referencias (todos los códigos aprobados para uso en el internet lo permiten). Por ejemplo, las referencias: <code>&amp;#916;</code>, <code>&amp;#1049;</code>, <code>&amp;#1511;</code>, <code>&amp;#1605;</code>, <code>&amp;#3671;</code>, <code>&amp;#12354;</code>, <code>&amp;#21494;</code>, <code>&amp;#33865;</code>, y <code>&amp;#45307;</code> ( o el mismo valor numérico expresado en hexadecimal con &#x como el prefijo) se muestran en el navegador como Δ, Й, ק,‎ م, ๗, あ, 叶, 葉 y 냻.
Estos caracteres se manifiestan directamente como [[bytes]] de acuerdo a la documentación de cada codificacón, si ésta es compatible con Unicode, o bien el usuario puede escribirlos directamente como referencias numéricas de caracteres basado en el punto código de Unicode de cada carácter, siempre y cuando la codificación de cada documento permita utilizar los dígitos necesarios para escribir las referencias (todos los códigos aprobados para uso en el internet lo permiten). Por ejemplo, las referencias: <code>&amp;#916;</code>, <code>&amp;#1049;</code>, <code>&amp;#1511;</code>, <code>&amp;#1605;</code>, <code>&amp;#3671;</code>, <code>&amp;#12354;</code>, <code>&amp;#21494;</code>, <code>&amp;#33865;</code>, y <code>&amp;#45307;</code> ( o el mismo valor numérico expresado en hexadecimal con &#x como el prefijo) se muestran en el navegador como Δ, Й, ק,‎ م, ๗, あ, 叶, 葉 y 냻.

== Historia ==

El proyecto unicode se inició a finales de 1987, tras conversaciones entre los ingenieros de Apple y Xerox: Joe Becker, Lee Collins y Mark Davis <ref name="UNICODE-HISTORY"></ref>. Como resultado de su colaboración, en Agosto de 1988 se publicó el primer borrador de Unicode bajo el nombre de Unicode88 <ref name="UNICODE-DRAFT"></ref>. Esta primera versión, con códigos de 16 bits, se publicó asumiendo que solo se codificarían los caracteres necesarios para el uso moderno.

Durante el año 1989 el trabajo continuó con la adición de colaboradores de otras compañías como Microsoft o Sun. El Consorcio Unicode se formó el [[3 de febrero de 1991]] y en [[octubre de 1991]] se publicó la primera versión del estándar. La segunda versión, incluyendo escritura ideográfica Han se publicó en Junio de 1992.

{| class="wikitable"
|-
!rowspan=2| Version
!rowspan=2| Fecha
!rowspan=2| Publicación
!rowspan=2| Edición [[Universal Character Set|ISO/IEC 10646]] asociada
!rowspan=2| [[Unicode scripts|Scripts]]
!colspan=2| Caracteres
|-
! #
! Adiciones notables
|-
| 1.0.0
| Octubre 1991
| ISBN 0-201-56788-1 (Vol.1)
|
| 24
| 7,161
| El repertorio inicial cubre los alfabetos: [[Alfabeto árabe|Árabe]], [[Alfabeto Armenio|Armenio]], [[Alfabeto Bengalí|Bengali]], [[Zhuyin|Bopomofo]], [[Alfabeto cirílico|Cirílico]], [[Alfabeto Devanagari|Devanagari]], [[Alfabeto Georgiano|Georgiano]], [[Alphabet griego|Griego/Copto]], [[Alfabeto Gujarati|Gujarati]], [[Alfabeto Gurmukhi|Gurmukhi]], [[Hangul]], [[Halfabeto hebreo|Hebreo]], [[Hiragana]], [[Alfabeto Kannada|Kannada]], [[Katakana]], [[Lao|Lao]], [[Alfabeto Latino |Latino]], [[Alfabeto Malayalam|Malayalam]], [[Oriya|Oriya]], [[Tamil|Tamil]], [[Telugu|Telugu]], [[Alfabeto Thai|Thai]], and [[Alfabeto tibetano|Tibetano]].<ref>http://www.unicode.org/Public/reconstructed/1.0.0/UnicodeData.txt</ref>
|-
| 1.0.1
| Junio 1992
| ISBN 0-201-60845-6 (Vol.2)
|
| 25
| 28.359
| Definido el primer conjunto de 20,902 ideogramas [[CJK]] unificados.<ref>http://www.unicode.org/Public/reconstructed/1.0.1/UnicodeData.txt</ref>
|-
| 1.1
| Junio 1993
|
| ISO/IEC 10646-1:1993
| 24
| 34.233
| 4,306 Se agregan más caracteres [[Hangul]] al conjunto original de 2,350. Se elimina el alfabeto tibetano<ref>http://www.unicode.org/Public/1.1-Update/UnicodeData-1.1.5.txt</ref>
|-
| 2.0
| Julio 1996
| ISBN 0-201-48345-9
| ISO/IEC 10646-1:1993 con enmiendas 5, 6 y 7
| 25
| 38.950
| Eliminado el conjunto origial de caracteres [[Hangul]]; se agrega un nuevo conjuto de 11.172 caracteres Hangul en una nueva ubicación.<ref>[http://www.unicode.org/Public/2.0-Update/UnicodeData-2.0.14.txt The Unicode 2.0 data file]</ref>Se agrega de nuevo el alfabeto tibetano en una nueva ubicación y con un juego de caracteres diferente. Se define el sistema de códigos subrogados y se crean los planos 15 y 16 de caracteres para uso privado. <ref>http://www.unicode.org/Public/2.0-Update/UnicodeData-2.0.14.txt</ref>
|-
| 2.1
| Mayo 1998
|
| ISO/IEC 10646-1:1993 con enmiendas 5, 6 y 7, y dos caracteres de la enmienda 18
| 25
| 38.952
| Se agrega el símbolo del [[Euro]].<ref>http://www.unicode.org/Public/2.1-Update/UnicodeData-2.1.2.txt</ref>
|-
| 3.0
| Septiembre 1999
| ISBN 0-201-61633-5
| ISO/IEC 10646-1:2000
| 38
| 49.259
| Ideogramas [[Cherokee|Cherokee]], [[Alfabeto etíope|Ethiopic]], [[Escritura Khmer|Khmer]], [[Escritura Mongol|mongol]], [[Burmese script|Myanmar]], [[Ogham]], [[Alfabeto rúnico]], [[Escritura Sinhala|Sinhala]], [[Alfabeto siríaco|Siríaco]], [[Thaana|Thaana]], [[Canadian Aboriginal syllabics|Unified Canadian Aboriginal Syllabics]], and [[Yi script|Yi Syllables]] además de los patrones [[Braille]].<ref>http://www.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.txt</ref>
|-
| 3.1
| Marzo 2001
|
| ISO/IEC 10646-1:2000
ISO/IEC 10646-2:2001
| 41
| 94,205
| Se agregan los alfabetos [[Alfabeto Deseret|Deseret]], [[Alfabeto gótico|Gótico]] and [[Old Italic alphabet|Old Italic]], y los símbolos de [[Notación musical|Notación musical moderna]] and [[Música bizantina]], y 42.711 ideogramas de [[CJK]] unificado.<ref>http://www.unicode.org/Public/3.1-Update/UnicodeData-3.1.0.txt</ref>
|-
| 3.2
| Marzo 2002
|
| ISO/IEC 10646-1:2000 con la enmienda 1
ISO/IEC 10646-2:2001
| 45
| 95.221
| Agregadas las escrituras [[Philippines|filipnas]]: [[Buhid|Buhid]], [[Hanunó'o|Hanunoo]], [[Baybayin|Tagalog]], y [[Tagbanwa |Tagbanwa]].<ref>http://www.unicode.org/Public/3.2-Update/UnicodeData-3.2.0.txt</ref>
|-
| 4.0
| Abril 2003
| ISBN 0-321-18578-1
| ISO/IEC 10646:2003
| 52
| 96.447
| [[Silabario chipriota]], [[Limbu|Limbu]], [[Lineal B]], [[Osmanya|Osmanya]], [[Shavian|Shavian]], [[Tai Nüa language#Writing_system|Tai Le]], and [[Alfabeto ugarítico|Ugarítico]] added, y los símbolos [[I Ching|Hexagrama]].<ref>http://www.unicode.org/Public/4.0-Update/UnicodeData-4.0.0.txt</ref>
|-
| 4.1
| Marzo 2005
|
| ISO/IEC 10646:2003 con enmienda 1
| 59
| 97.720
| Agregados [[Lontara script|Buginese]], [[Alfabeto glagolítico|Glagolítico]], [[Kharoṣṭhī|Kharoshthi]], [[New Tai Lue]], [[Persa antiguo|Persa antiguo]], [[Sylheti Nagari|Syloti Nagri]], y [[Tifinagh]]. Se separa el [[Alfabeto copto|Copto]] del alfabeto griego. Símbolos griegos antiguos para música y numeración.<ref>http://www.unicode.org/Public/4.1.0/ucd/UnicodeData.txt</ref>
|-
| 5.0
| Julio 2006
| ISBN 0-321-48091-0
| ISO/IEC 10646:2003 con enmiendas 1 y 2 y cuatro caracteres de la enmienda 3
| 64
| 99.089
| Agregados [[Balinese script|Balinese]], [[Cuneiforme|Cuneiforme]], [[N'Ko]], [[Phags-pa script|Phags-pa]], and [[Alfabeto fenicio|Fenicio]].<ref>http://www.unicode.org/Public/5.0.0/ucd/UnicodeData.txt</ref>
|-
| 5.1
| Abril 2008
|
| ISO/IEC 10646:2003 plus Amendments 1, 2, 3 and 4
| 75
| 100.713
| Agregados [[Carian script|Carian]], [[Cham alphabet|Cham]], [[Kayah Li script|Kayah Li]], [[Lepcha script|Lepcha]], [[Lycian script|Lycian]], [[Lydian script|Lydian]], [[Ol Chiki script|Ol Chiki]], [[Rejang script|Rejang]], [[Saurashtra script|Saurashtra]], [[Sundanese script|Sundanese]], y [[Silabario Vai|Vai]]. Símbolos para el [[Phaistos Disc]], fichas de[[Mahjong|Mahjong]] y fichas de [[Dominó]]. Importantes adiciones para [[Burmese script|Myanmar]], letras y [[abreviaturas de amanuense]] utilizadas en [[manuscrito|manuscritos]] medievales y la adición de [[capital ß]].<ref>http://www.unicode.org/Public/5.1.0/ucd/UnicodeData.txt</ref>
|}

Unicode 5.2, en correspondencia con ISO/IEC 10646:2003 con enmiendas de 1 a 6, se publicará en in otoño de 2009.<ref>[http://std.dkuug.dk/jtc1/sc2/wg2/docs/n3642.pdf Unicode Liaison Report&nbsp;— WG 2 meeting 54]</ref>


== Véase también ==
== Véase también ==
* [[International Components for Unicode|ICU]] - Componentes de internacional para Unicode


== Referencias ==
== Referencias ==

Revisión del 23:08 26 may 2009

Engranajes
Engranajes

Un wikipedista está trabajando actualmente en extender este artículo.

Es posible que, a causa de ello, haya lagunas de contenido o deficiencias de formato. Por favor, antes de realizar correcciones mayores o reescrituras, contacta con él en su página de usuario o la página de discusión del artículo para poder coordinar la redacción.

El Estándar Unicode (acrónimo formado del idioma inglés por «Universal» Universal y «Code» Código) es un estándar de codificación de caracteres diseñado para facilitar el tratamiento informático, transmision y visualización de textos de múltiples lenguajes y disciplinas técnicas además de textos clásicos de lenguas muertas.

Unicode especifica un nombre e identificador numérico único para cada caracter o símbolo, el code point o punto de código, además de otras informaciones necesarias para su uso correcto: direccionalidad, capitalización y otros atributos. Unicode trata los caracteres alfabéticos, ideográficos y símbolos de forma equivalente, lo que significa que se pueden mezclar en un mismo texto sin la introducción de marcas o caracteres de control [1]​.

Este estándar es mantenido por el Unicode Technical Committee (UTC), integrado en el Unicode Consortium, del que forman parte, con distinto grado de implicación empresas como Microsoft, Apple, Adobe, IBM, Oracle, SAP, Google, instituciones como la Universidad de Berkeley, y profesionales y académicos a título individual [2]​.

El establecimiento de Unicode ha involucrado un ambicioso proyecto para reemplazar los esquemas de codificación de caracteres existentes, muchos de los cuales están muy limitados en tamaño y son incompatibles con entornos plurilingües. Unicode se ha vuelto el más extenso y completo esquema de codificación de caracteres, siendo el más dominante en la internacionalización y adaptación local del software informático. El estándar ha sido implementado en un número considerable de tecnologías recientes, que incluyen XML, Java y sistemas operativos modernos.

El Unicode Consortium mantiene una fuerte relación con ISO/IEC [3]​. Ambas organizaciones mantienen un acuerdo desde 1991 con el objetivo de mantener la sincronización entre sus estándares que contienen los mismos caracteres y puntos de código.

Origen y desarrollo

Unicode tiene el propósito explícito de trascender las limitaciones de los códigos de caracteres tradicionales, como los definidos por el estándar ISO 8859, utilizado en numerosos países del mundo, pero que sigue siendo incompatible entre ellos en gran parte. Buena parte de los codificadores de caracteres tradicionales comparten un problema: permiten procesamientos informáticos bilingües (generalmente usando caracteres latinos y del idioma local), pero no multilingües (procesamiento informático de idiomas arbitrarios mezclados entre ellos).

Unicode intenta codificar los caracteres esenciales —grafemas— más que las representaciones variantes para dichos caracteres. En caso de los caracteres chinos, esto lleva a veces a constantes controversias sobre la distinción entre caracteres esenciales y sus representaciones variantes (véase en:Han unification y en:Radical (Chinese character)).

Unicode representa un carácter de forma abstracta, y deja la representación visual (tamaño, dimensión, fuente o estilo) a otro software, como un navegador web o un procesador de texto. No obstante, esta simplicidad se complica con las concesiones hechas por los diseñadores de Unicode, con la esperanza de animar una mayor "adopción" de Unicode[cita requerida].

Los primeros 256 puntos de código son idénticos a los especificados en ISO 8859-1, para facilitar la conversión del texto ya existente escrito en lenguajes europeos occidentales. Muchos de los caracteres esenciales se codificaron varias veces en distintos puntos de código para preservar distinciones utilizadas por codificaciones heredadas y permitir conversiones de aquellas codificaciones a Unicode (y viceversa) sin perder ningún tipo de información. Por ejemplo, la sección de formas anchas (en:Fullwidth) de los puntos de código abarca un alfabeto latino completo, separado de la sección de alfabeto latino principal. En fuentes CJK (fuentes para chino, japonés y coreano), estos caracteres fueron representados tanto en su forma ancha como en la estándar, más angosta.

Además de que Unicode permite combinaciones de caracteres, también dispone de versiones precompuestas de la mayoría de combinaciones de letras diacríticas en uso. Estas versiones facilitan las conversiones desde y hacia las más simples codificaciones heredadas y permiten que las aplicaciones utilicen Unicode como un formato de texto interno sin tener que implementar combinaciones de caracteres. Por ejemplo, é puede representarse en Unicode como U+0065 (letra latina minúscula e) seguido de U+0301 (acento agudo), pero puede también representarse directamente por el precompuesto U+00E9. (ver sección Composición de caracteres contra caracteres prediseñados para mayores detalles)

El estándar Unicode también incluye un número de elementos relacionados, como las propiedades de caracteres, formas de normalización de textos y órdenes de visualización bidireccional (para la correcta visualización de texto que contenga escrituras de derecha a izquierda —Árabe o Hebreo— y de izquierda a derecha a la vez).

Cobertura

Unicode es un incluye todos los caracteres de uso común en la actualidad. La versión 5.1 contiene 100.713 caracteres provenientes de alfabetos, sistemas ideográficos y colecciones de símbolos (símbolos matemáticos, técnicos, músicales, iconos...). Esta es una cifra que crece en cada versión. Desde un punto de vista técnico, Unicode incluye los estándares nacionales ANSI Z39.64, KS X 1001, JIS X 0208, JIS X 0212, JIS X 0213, GB 2312, GB 18030, HKSCS, y CNS 11643, codificaciones particulares de fabricantes de software Apple, Adobe, Microsoft, IBM, etc. Y además Unicode reserva espacio para usos privado por fabricantes de software.

Unicode cumple con el estándar ISO/IEC 10646:2003, conocido como UCS o juego de caracteres universal.

A continuación se cita una muestra de los sistemas de escritura actuales incluidos en Unicode: Árabe, Braille, Copto, Cirílico, Griego, Han (Kanji, Hanja y Hanzi), Japonés (Kanji, Hiragana y Katakana), Hebreo y Latino.

También se incluyen escrituras históricas menos utilizadas, incluso aquellas extinguidas, para propósitos académicos, como por ejemplo: Cuneiforme, Griego antiguo, Lineal B micénico, Fenicio y Rúnico.

Entre los símbolos no que no forman parte de alfabetos se encuentran símbolos musicales y matemáticos, fichas de juegos como el dominó, flechas, iconos, etc.

Actualmente se está trabajando en la inclusión de nuevos grupos de símbolos como los gerogríficos egipcios o mayas [4]​. Otros alfabetos propuestos han sido descartados por distintas razones [4][5]​, como por ejemplo el alfabeto Klingon.

Elementos del estándar Unicode

Caracteres, puntos de código y espacio de códigos

El elemento básico es el carácter. Se considera un caracter al elemento más pequeño de un lenguaje escrito con significado. Esto incluye letras, signos diacríticos, caracteres de puntuacion y otros símbolos. Los caracteres se agrupan en alfabetos. Se consideran diferentes los caracteres de alfabetos distintos aunque compartan forma y significación.

A cada caracter se le asigna un número que lo identifica, denominado punto de código o code point. Cuando se ha asignado un código a un caracter se dice que dicho caracter está codificado. El espacio para códigos tiene 1.114.112 posiciones posibles (0x10FFFF). Los puntos de codigo se expresan utilizando utilizando valores hexadecimales agregando el prefijo U+. El valor hexadecimal se completa con ceros hasta 4 dígitos hexadecimales cuando es necesario; si es de longitud mayor que 4 dígitos no se agregan ceros.

Base de datos de caracteres

El conjunto de caracteres codificados por Unicode, es la Base de Datos Unicode o UCD (Unicode Character Database) que incluye mas información sobre dichos caracteres: alfabeto al que pertenece, nombre, clasificación, capitalización, orientación y otras formas de uso, variantes estandarizadas, etc.

Organización del espacio de códigos

Con excepciones, los caracteres codificados sea agrupan en el espacio de códigos siguiendo categorías como alfabeto o sistema de escritura, de forma que caracteres relacionados se encuentren cerca en tablas de codificación.

Planos

Por conveniencia se ha dividido el espacio de codigos en grandes grupos denominados planos. Cada plano contiene un máximo de 65.535 caracteres. Dado un punto de código expresado en hexadecimal, los 4 útimos dígitos determinan la posición del caracter en el plano.

  • Plano básico multilingüe: BMP o plano 0. Contiene la mayor parte de los alfabetos modernos, incluyendo los caracteres más comunes del sistema CJK, otros caracteres históricos o poco habituales y 6.400 posiciones reservadas para uso privado.
  • Plano suplementario multilingüe: SMP o plano 1. Alfabetos históricos de menor uso y sistemas de uso técnico u otros usos.
  • Plano suplementario ideográfico: SIP o plano 2. Contiene los caracteres del sistema CJK que no se incluyen en el plano 0. La mayoría son caracteres muy raros o de interés histórico.
  • Plano de propósito especial: SSP o plano 14. Área para caracteres de control que no se han introducido en el plano 0.
  • Planos de uso privado: Planos 15 y 16. Reservados para uso privado por fabricantes de software.

Áreas y Bloques

Los distintos planos se dividen, en áreas de direccionamiento en función de los tipos generales que incluyen. Esta división es convencional, no reglada y puede variar con el tiempo. Las áreas se dividen, a su vez, en bloques. Los bloques están definidos normativamente y son rangos consecutivos del espacio de códigos. Los bloques se utilizan para formar las tablas impresas sde caracteres pero no deben tomarse como definiciones de grupos significativos de caracteres.

Tratamiento de la informacion

Formas de codificación

Los puntos de codigo de Unicode se identifican por un número entero. Según su arquitectura, un ordenador utilizará unidades de 8, 16 o 32 bits para representar dichos enteros. Las formas de codificación de Unicode reglamentan la forma en que los puntos de código se transformará en unidates tratables por el computador.

Unicode define tres formas de codificación [6]​ bajo el nombre UTF o Formato de Transformación Unicode (Unicode Transformation Format):

  • UTF-8 — codificación orientada a byte con símbolos de logitud variable.
  • UTF-16 — codificación de 16 bits de longitud variable optimizada para la representación del plano básico multilingüe (BMP)[6]​.
  • UTF-32 — codificación de 32 bits de longitud fija, y la más sencilla de las tres.

Las formas de codificación se limitan a describir el modo en que se representan los puntos de código en formato inteligible por la máquina. A partir de las 3 formas identificadas se definen 7 esquemas de codificación.

Esquemas de codificación

Los esquemas de codificación [6]​ tratan de la forma en que se serializa la información codificada. La seguridad en los intercambios de información entre sistemas heterogéneos requiere la implementación de sistemas que permitan determinar el orden correcto de los bits y bytes y garantizar que la reconstrucción de la información es correcta. Una diferencia fundamental entre procesadores es el orden de disposición de los bytes en palabras de 16 y 32 bits, lo que se denomina endianness. Los esquemas de codificación deben garantizar que es posible que los extremos de una comunicación saben cómo interpretar la información recibida. A partir de las 3 formas de codificación se definen 7 esquemas. A pesar de que comparten nombre no deben confundirse esquemas y formas de codificación.


Esquema de codificación Endianness Acepta BOM
UTF-8 No aplicable
UTF-16 Big-endian o Little-endian
UTF-16BE Big-endian No
UTF-16LE Little-endian No
UTF-32 Big-endian o Little-endian
UTF-32BE Big-endian No
UTF-32LE Little-endian No

Unicode define una marca especial, Byte order mark o BOM al inicio de un fichero o una comunicación para hacer explícita la ordenación de bytes. Cuando un protocolo superior especifica el orden de bytes, la marca no es nesaria y puede omitirse dando lugar a los esquemas de la lista anterior con sufijo BE o LE.

La unidad de codificacion en UTF-8 es el byte por lo que no necesita una indicación de orden de byte. El estándar ni requiere ni recomienda la utilización de BOM, pero lo admite como marca de que el texto es Unicode o como resultado de la conversión de otros esquemas.

Composición de caracteres contra caracteres prediseñados

Unicode incluye un mecanismo para modificar la forma de los caracteres y así extender el repertorio de compatibilidad con los símbolos preestablecidos. Esto incluye el uso de la combinación de marcas diacríticas, las cuales son especificadas después del carácter principal (de manera que uno puede apilar varios signos sobre el mismo carácter). Sin embargo, por razones de compatibilidad, Unicode también incluye una gran cantidad de caracteres prediseñados. De esta manera, los usuarios en muchas ocasiones tienen muchas maneras de codificar el mismo carácter). Para poder manejar esto, Unicode también provee el mecanismo de equivalencia cónica.

Una situación similar ocurre con el hangul. Unicode ofrece el mecanismo para crear silabas hangul con el Hangul Jamo. Aunque, también provee de sílabas hangul prediseñadas (11,172 de ellas para ser exactos).

Los ideogramas provenientes de China, Corea y Japón actualmente sólo tienen códigos para su forma prediseñada. Aunque la mayoría de estos ideogramas se componen de elementos más simples (también llamados radicales) así que Unicode podrá descomponerlos como ocurre con el hangul. Esto reduciría enormemente el número de puntos de código requeridos, y permitiría la visualización de virtualmente cualquier ideograma concebible (lo que permitiría resolver algunos de los problemas causados por la Unificación Han). Una idea similar cubre algunos métodos de entrada, como el Cangjie y el Wubi. Algunos intentos de hacer esto para la codificación de caracteres han tropezado con el hecho de que los ideogramas no se descomponen tan fácil o tan regularmente como parece que deberían.

Un juego de radicales fue otorgado en Unicode 3.0 (radicales chinos, japoneses y coreanos entre U+2E80 y UY+2EFF, radicales KanXi de U+2F00 a U+2FDF y descripción ideográfica de caracteres desde U+2FF0 hasta U+2FFB), pero el estándar Unicode (sección 11.1 de Unicode 4.1) advierte contra el uso de secuencias de descripciones ideográficas como una representación alterna para los caracteres previamente codificados:

Este proceso es diferente de la codificación formal de un ideograma. No hay descripción canónica para ideogramas no codificados; no hay semántica seleccionada para describir ideogramas. Conceptualmente las descripciones ideográficas están más relacionadas a una frase descriptiva: "una 'e' con un acento agudo en ella" que a una secuencia de números: (U+006E, U+0301).

Discusiones

Algunas personas, principalmente en Japón, se opone al Unicode en general [cita requerida], quejándose de las limitaciones técnicas y problemas políticos involucrados. Las personas que trabajan en el proyecto ven esas críticas como malentendidos del estándar Unicode y del proceso por el cual ha evolucionado. El error más común, desde este punto de vista, tiene que ver con la confusión entre caracteres abstractos y sus formas visuales altamente variables. Por otro lado mientras que la población china puede leer fácilmente la mayoría de los símbolos utilizados por los japoneses o los coreanos, los japoneses muy a menudo reconocen sólo una variante en particular (lo cual es un dato curioso, pues el japonés y el coreano son considerados como lenguas aisladas).

Otras personas han denigrado el Unicode al afirmar que es un complot[cita requerida] contra las culturas asiáticas perpetrado por los occidentales sin ningún conocimiento de como son usados los caracteres en chino, coreano o japonés, a pesar de que un buen número de expertos de los tres continentes en el Grupo Ideográfico del Poniente (IRG por sus siglas en inglés). El IRG avisa al consorcio del Unicode y al ISO y a la Unificación Han de las nuevas adiciones al repertorio y de la identificación de símbolos en los tres lenguajes sobre cuales de ellos se pueden tratar como variaciones de estilo del mismo carácter histórico. La unificación Han se ha convertido en uno de los aspectos más controvertidos de Unicode.

El incluir el Lenguaje Thai también ha sido criticado por su orden ilógico de caracteres. Esta complicación es debido a que el Unicode ha heredado el Estándar Industrial Thai 620, el cual funcionaba de la misma manera. Este problema de orden complica el proceso de comparación de Unicode.

Sin embargo, no todo son rechazos, pues algunos gobiernos, como el gobierno de India, han mostrado enorme interés en el proyecto, siendo miembro con derecho a voto en el consorcio de Unicode[2]​.

Unicode en uso

Sistemas operativos

Unicode se ha convertido en el esquema dominante para el procesamiento y en ocasiones para el almacenamiento de texto (aunque mucho del texto aún es almacenado en codificaciones heredadas). Los adaptadores iniciales utilizaban UCS-2 y después cambiaron a UTF-16 (debido a que esta era la única manera de agregar compatibilidad para caracteres que no eran bmp). El mejor ejemplo conocido de este sistema es Windows NT (y obviamente sus descendientes Windows 2000 y Windows XP). Aunque también los códigos de bytes de los ambientes Java y .NET lo utilizan.

Por otro lado UTF-8 (desarrollado para Plan 9) se ha convertido en la codificación principal de la mayoría de los sistemas operativos similares o basados en Unix (aunque otros también son usados por algunas bibliotecas) debido a que es relativamente fácil hacer el reemplazo por caracteres de los juegos de caracteres extendidos ASCII.

Web

Estos caracteres se manifiestan directamente como bytes de acuerdo a la documentación de cada codificacón, si ésta es compatible con Unicode, o bien el usuario puede escribirlos directamente como referencias numéricas de caracteres basado en el punto código de Unicode de cada carácter, siempre y cuando la codificación de cada documento permita utilizar los dígitos necesarios para escribir las referencias (todos los códigos aprobados para uso en el internet lo permiten). Por ejemplo, las referencias: &#916;, &#1049;, &#1511;, &#1605;, &#3671;, &#12354;, &#21494;, &#33865;, y &#45307; ( o el mismo valor numérico expresado en hexadecimal con &#x como el prefijo) se muestran en el navegador como Δ, Й, ק,‎ م, ๗, あ, 叶, 葉 y 냻.

Historia

El proyecto unicode se inició a finales de 1987, tras conversaciones entre los ingenieros de Apple y Xerox: Joe Becker, Lee Collins y Mark Davis [7]​. Como resultado de su colaboración, en Agosto de 1988 se publicó el primer borrador de Unicode bajo el nombre de Unicode88 [8]​. Esta primera versión, con códigos de 16 bits, se publicó asumiendo que solo se codificarían los caracteres necesarios para el uso moderno.

Durante el año 1989 el trabajo continuó con la adición de colaboradores de otras compañías como Microsoft o Sun. El Consorcio Unicode se formó el 3 de febrero de 1991 y en octubre de 1991 se publicó la primera versión del estándar. La segunda versión, incluyendo escritura ideográfica Han se publicó en Junio de 1992.

Version Fecha Publicación Edición ISO/IEC 10646 asociada Scripts Caracteres
# Adiciones notables
1.0.0 Octubre 1991 ISBN 0-201-56788-1 (Vol.1) 24 7,161 El repertorio inicial cubre los alfabetos: Árabe, Armenio, Bengali, Bopomofo, Cirílico, Devanagari, Georgiano, Griego/Copto, Gujarati, Gurmukhi, Hangul, Hebreo, Hiragana, Kannada, Katakana, Lao, Latino, Malayalam, Oriya, Tamil, Telugu, Thai, and Tibetano.[9]
1.0.1 Junio 1992 ISBN 0-201-60845-6 (Vol.2) 25 28.359 Definido el primer conjunto de 20,902 ideogramas CJK unificados.[10]
1.1 Junio 1993 ISO/IEC 10646-1:1993 24 34.233 4,306 Se agregan más caracteres Hangul al conjunto original de 2,350. Se elimina el alfabeto tibetano[11]
2.0 Julio 1996 ISBN 0-201-48345-9 ISO/IEC 10646-1:1993 con enmiendas 5, 6 y 7 25 38.950 Eliminado el conjunto origial de caracteres Hangul; se agrega un nuevo conjuto de 11.172 caracteres Hangul en una nueva ubicación.[12]​Se agrega de nuevo el alfabeto tibetano en una nueva ubicación y con un juego de caracteres diferente. Se define el sistema de códigos subrogados y se crean los planos 15 y 16 de caracteres para uso privado. [13]
2.1 Mayo 1998 ISO/IEC 10646-1:1993 con enmiendas 5, 6 y 7, y dos caracteres de la enmienda 18 25 38.952 Se agrega el símbolo del Euro.[14]
3.0 Septiembre 1999 ISBN 0-201-61633-5 ISO/IEC 10646-1:2000 38 49.259 Ideogramas Cherokee, Ethiopic, Khmer, mongol, Myanmar, Ogham, Alfabeto rúnico, Sinhala, Siríaco, Thaana, Unified Canadian Aboriginal Syllabics, and Yi Syllables además de los patrones Braille.[15]
3.1 Marzo 2001 ISO/IEC 10646-1:2000

ISO/IEC 10646-2:2001

41 94,205 Se agregan los alfabetos Deseret, Gótico and Old Italic, y los símbolos de Notación musical moderna and Música bizantina, y 42.711 ideogramas de CJK unificado.[16]
3.2 Marzo 2002 ISO/IEC 10646-1:2000 con la enmienda 1

ISO/IEC 10646-2:2001

45 95.221 Agregadas las escrituras filipnas: Buhid, Hanunoo, Tagalog, y Tagbanwa.[17]
4.0 Abril 2003 ISBN 0-321-18578-1 ISO/IEC 10646:2003 52 96.447 Silabario chipriota, Limbu, Lineal B, Osmanya, Shavian, Tai Le, and Ugarítico added, y los símbolos Hexagrama.[18]
4.1 Marzo 2005 ISO/IEC 10646:2003 con enmienda 1 59 97.720 Agregados Buginese, Glagolítico, Kharoshthi, New Tai Lue, Persa antiguo, Syloti Nagri, y Tifinagh. Se separa el Copto del alfabeto griego. Símbolos griegos antiguos para música y numeración.[19]
5.0 Julio 2006 ISBN 0-321-48091-0 ISO/IEC 10646:2003 con enmiendas 1 y 2 y cuatro caracteres de la enmienda 3 64 99.089 Agregados Balinese, Cuneiforme, N'Ko, Phags-pa, and Fenicio.[20]
5.1 Abril 2008 ISO/IEC 10646:2003 plus Amendments 1, 2, 3 and 4 75 100.713 Agregados Carian, Cham, Kayah Li, Lepcha, Lycian, Lydian, Ol Chiki, Rejang, Saurashtra, Sundanese, y Vai. Símbolos para el Phaistos Disc, fichas deMahjong y fichas de Dominó. Importantes adiciones para Myanmar, letras y abreviaturas de amanuense utilizadas en manuscritos medievales y la adición de capital ß.[21]

Unicode 5.2, en correspondencia con ISO/IEC 10646:2003 con enmiendas de 1 a 6, se publicará en in otoño de 2009.[22]

Véase también

Referencias

  1. «About the Unicode Standard». Unicode, Inc. Consultado el 21 de mayo de 2009. 
  2. a b «The Unicode Consortium Members». Unicode, Inc. Consultado el 21 de mayo de 2009. 
  3. The Unicode Consortium (octubre de 2006). Julie D. Allen, Joe Becker (et al.), ed. Unicode 5.0 standard (en inglés). Addisson-Wesley. ISBN 0-321-48091-0. 
  4. a b «Roadmaps to Unicode». Unicode, Inc. Consultado el 21 de mayo de 2009. 
  5. «Archive of Notices of Non-Approval». Unicode, Inc. Consultado el 21 de mayo de 2009. 
  6. a b c The Unicode Consortium (octubre de 2006). «2.5 Encoding Forms». En Julie D. Allen, Joe Becker (et al.), ed. Unicode 5.0 standard (en inglés). Addisson-Wesley. ISBN 0-321-48091-0. 
  7. Error en la cita: Etiqueta <ref> no válida; no se ha definido el contenido de las referencias llamadas UNICODE-HISTORY
  8. Error en la cita: Etiqueta <ref> no válida; no se ha definido el contenido de las referencias llamadas UNICODE-DRAFT
  9. http://www.unicode.org/Public/reconstructed/1.0.0/UnicodeData.txt
  10. http://www.unicode.org/Public/reconstructed/1.0.1/UnicodeData.txt
  11. http://www.unicode.org/Public/1.1-Update/UnicodeData-1.1.5.txt
  12. The Unicode 2.0 data file
  13. http://www.unicode.org/Public/2.0-Update/UnicodeData-2.0.14.txt
  14. http://www.unicode.org/Public/2.1-Update/UnicodeData-2.1.2.txt
  15. http://www.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.txt
  16. http://www.unicode.org/Public/3.1-Update/UnicodeData-3.1.0.txt
  17. http://www.unicode.org/Public/3.2-Update/UnicodeData-3.2.0.txt
  18. http://www.unicode.org/Public/4.0-Update/UnicodeData-4.0.0.txt
  19. http://www.unicode.org/Public/4.1.0/ucd/UnicodeData.txt
  20. http://www.unicode.org/Public/5.0.0/ucd/UnicodeData.txt
  21. http://www.unicode.org/Public/5.1.0/ucd/UnicodeData.txt
  22. Unicode Liaison Report — WG 2 meeting 54

Enlaces externos