Unicode es un estándar de tecnología de la información para la codificación , representación y manejo consistentes de texto expresado en la mayoría de los sistemas de escritura del mundo . El estándar es mantenido por el Consorcio Unicode , y a marzo de 2020 , tiene un total de 143,859 caracteres, con Unicode 13.0 (estos caracteres constan de 143,696 caracteres gráficos y 163 caracteres de formato) cubriendo 154 scripts modernos e históricos , así como múltiples conjuntos de símbolos y emoji .[actualizar]
![]() Logotipo del Consorcio Unicode | |
Alias | Juego de caracteres codificados universal (UCS) |
---|---|
Idioma (s) | Internacional |
Estándar | Estándar Unicode |
Formatos de codificación | UTF-8 , UTF-16 , GB18030 Menos común : UTF-32 , BOCU , SCSU , UTF-7 (obsoleto) |
Precedido por | ISO / IEC 8859 , varios otros |
El repertorio de caracteres Unicode está sincronizado con ISO / IEC 10646 , siendo cada uno código por código idéntico al otro. Sin embargo, el estándar Unicode incluye más que solo el código base . Además de las codificaciones de caracteres, la publicación oficial del Consorcio incluye una amplia variedad de detalles sobre los scripts y cómo mostrarlos: reglas de normalización , descomposición, clasificación , representación y orden de visualización de texto bidireccional para textos multilingües, etc. [1] El Estándar también incluye archivos de datos de referencia y gráficos visuales para ayudar a los desarrolladores y diseñadores a implementar correctamente el repertorio.
El éxito de Unicode en la unificación de conjuntos de caracteres ha llevado a su uso generalizado y predominante en la internacionalización y localización de software de computadora . El estándar se ha implementado en muchas tecnologías recientes, incluidos los sistemas operativos modernos , XML , Java (y otros lenguajes de programación ) y .NET Framework .
Unicode se puede implementar mediante diferentes codificaciones de caracteres. El estándar Unicode define los formatos de transformación Unicode (UTF) UTF-8 , UTF-16 y UTF-32 , y varias otras codificaciones. Las codificaciones más utilizadas son UTF-8, UTF-16 y UCS -2 (un precursor de UTF-16 sin soporte completo para Unicode); GB18030 está estandarizado en China e implementa Unicode completamente, aunque no es un estándar oficial Unicode.
UTF-8, la codificación dominante en la World Wide Web (utilizada en más del 95% de los sitios web a partir de 2020 [actualizar], y hasta el 100% para algunos idiomas) [2] y en la mayoría de los sistemas operativos similares a Unix, utiliza un byte [nota 1] (8 bits ) para los primeros 128 puntos de código y hasta 4 bytes para otros caracteres. [3] Los primeros 128 puntos de código Unicode representan los caracteres ASCII , lo que significa que cualquier texto ASCII también es un texto UTF-8.
UCS-2 usa dos bytes (16 bits) para cada carácter, pero solo puede codificar los primeros 65.536 puntos de código , el llamado Plano Multilingüe Básico (BMP). Con 1,112,064 posibles puntos de código Unicode correspondientes a caracteres (ver más abajo ) en 17 planos, y con más de 143,000 puntos de código definidos a partir de la versión 13.0, UCS-2 solo puede representar menos de la mitad de todos los caracteres Unicode codificados. Por lo tanto, UCS-2 está desactualizado, aunque todavía se usa ampliamente en software. UTF-16 amplía UCS-2, utilizando la misma codificación de 16 bits que UCS-2 para el plano multilingüe básico y una codificación de 4 bytes para los otros planos. Siempre que no contenga puntos de código en el rango reservado U + D800 – U + DFFF, [ aclaración necesaria ] un texto UCS-2 es texto UTF-16 válido.
UTF-32 (también conocido como UCS-4) usa cuatro bytes para codificar cualquier punto de código dado, pero no necesariamente cualquier carácter percibido por el usuario (en términos generales, un grafema ), ya que un carácter percibido por el usuario puede estar representado por un Clúster de grafemas (una secuencia de múltiples puntos de código). [4] Al igual que UCS-2, el número de bytes por punto de código es fijo, lo que facilita la indexación de caracteres; pero a diferencia de UCS-2, UTF-32 puede codificar todos los puntos de código Unicode. Sin embargo, debido a que cada carácter usa cuatro bytes, UTF-32 ocupa mucho más espacio que otras codificaciones y no se usa ampliamente. Aunque UTF-32 tiene un tamaño fijo para cada punto de código, también es de longitud variable con respecto a los caracteres percibidos por el usuario. Los ejemplos incluyen: Devanagari kshi , que está codificado por 4 puntos de código, y emojis de bandera nacional, que se componen de dos puntos de código. [5] Todas las secuencias de caracteres combinadas son grafemas, pero hay otras secuencias de puntos de código que también lo son, por ejemplo \ r \ n . [6] [7] [8] [9]
Origen y desarrollo
Unicode tiene el objetivo explícito de trascender las limitaciones de las codificaciones de caracteres tradicionales, como las definidas por el estándar ISO / IEC 8859 , que encuentran un amplio uso en varios países del mundo pero siguen siendo en gran medida incompatibles entre sí. Muchas codificaciones de caracteres tradicionales comparten un problema común en el sentido de que permiten el procesamiento informático bilingüe (generalmente utilizando caracteres latinos y la escritura local), pero no el procesamiento informático multilingüe (procesamiento informático de escrituras arbitrarias mezcladas entre sí).
Unicode, intencionalmente, codifica los caracteres subyacentes ( grafemas y unidades similares a grafemas) en lugar de los glifos variantes (representaciones) de dichos caracteres. En el caso de los caracteres chinos , esto a veces conduce a controversias sobre la distinción del carácter subyacente de sus glifos variantes (ver Unificación Han ).
En el procesamiento de texto, Unicode asume la función de proporcionar un punto de código único , un número , no un glifo, para cada carácter. En otras palabras, Unicode representa un carácter de forma abstracta y deja la representación visual (tamaño, forma, fuente o estilo) a otro software, como un navegador web o un procesador de texto . Sin embargo, este simple objetivo se vuelve complicado debido a las concesiones hechas por los diseñadores de Unicode con la esperanza de fomentar una adopción más rápida de Unicode.
Los primeros 256 puntos de código se hicieron idénticos al contenido de ISO / IEC 8859-1 para que sea trivial convertir el texto occidental existente. Muchos caracteres esencialmente idénticos se codificaron varias veces en diferentes puntos de código para preservar las distinciones utilizadas por las codificaciones heredadas y, por lo tanto, permitir la conversión de esas codificaciones a Unicode (y viceversa) sin perder ninguna información. Por ejemplo, la sección de puntos de código " formularios de ancho completo " abarca un duplicado completo del alfabeto latino porque las fuentes chinas, japonesas y coreanas ( CJK ) contienen dos versiones de estas letras, "ancho completo" que coinciden con el ancho de los caracteres CJK, y ancho normal. Para ver otros ejemplos, consulte caracteres duplicados en Unicode .
Historia
Basado en experiencias con Xerox Character Code Standard (XCCS) desde 1980, [10] los orígenes de Unicode se remontan a 1987, cuando Joe Becker de Xerox con Lee Collins y Mark Davis de Apple comenzaron a investigar los aspectos prácticos de la creación de un conjunto de caracteres universal. [11] Con aportes adicionales de Peter Fenwick y Dave Opstad, [10] Joe Becker publicó un borrador de propuesta para un "sistema de codificación de caracteres de texto internacional / multilingüe en agosto de 1988, tentativamente llamado Unicode". Explicó que "[e] l nombre 'Unicode' pretende sugerir una codificación universal única, unificada". [10]
En este documento, titulado Unicode 88 , Becker describió un modelo de caracteres de 16 bits : [10]
Unicode está destinado a abordar la necesidad de una codificación de texto mundial viable y confiable. Unicode podría describirse aproximadamente como "ASCII de cuerpo ancho" que se ha ampliado a 16 bits para abarcar los caracteres de todos los idiomas vivos del mundo. En un diseño diseñado correctamente, 16 bits por carácter son más que suficientes para este propósito.
Su diseño original de 16 bits se basó en la suposición de que solo los scripts y caracteres de uso moderno necesitarían codificarse: [10]
Unicode da mayor prioridad a garantizar la utilidad para el futuro que a la preservación de antigüedades pasadas. Unicode apunta en primera instancia a los caracteres publicados en texto moderno (por ejemplo, en la unión de todos los periódicos y revistas impresas en el mundo en 1988), cuyo número está indudablemente muy por debajo de 2 14 = 16,384. Más allá de esos caracteres de uso moderno, todos los demás pueden definirse como obsoletos o raros; estos son mejores candidatos para el registro de uso privado que para congestionar la lista pública de Unicodes generalmente útiles.
A principios de 1989, el grupo de trabajo Unicode se expandió para incluir a Ken Whistler y Mike Kernaghan de Metaphor, Karen Smith-Yoshimura y Joan Aliprand de RLG , y Glenn Wright de Sun Microsystems , y en 1990, Michel Suignard y Asmus Freytag de Microsoft y Rick McGowan de NeXT se unió al grupo. A finales de 1990, se había completado la mayor parte del trabajo sobre el mapeo de los estándares de codificación de caracteres existentes y estaba listo un borrador de revisión final de Unicode.
El Consorcio Unicode se incorporó en California el 3 de enero de 1991, [12] y en octubre de 1991, se publicó el primer volumen del estándar Unicode. El segundo volumen, que cubre los ideogramas Han, se publicó en junio de 1992.
En 1996, se implementó un mecanismo de carácter sustituto en Unicode 2.0, por lo que Unicode ya no estaba restringido a 16 bits. Esto aumentó el espacio de código Unicode a más de un millón de puntos de código, lo que permitió la codificación de muchas escrituras históricas (por ejemplo, jeroglíficos egipcios ) y miles de caracteres obsoletos o raramente usados que no se había anticipado que necesitaran codificación. Entre los caracteres que no estaban destinados originalmente a Unicode se utilizan raramente los caracteres Kanji o chinos, muchos de los cuales forman parte de nombres personales y de lugares, lo que los hace raramente utilizados, pero mucho más esenciales de lo previsto en la arquitectura original de Unicode. [13]
La versión 1.0 de la especificación Microsoft TrueType de 1992 utilizó el nombre Apple Unicode en lugar de Unicode para el Id. De plataforma en la tabla de nombres.
Consorcio Unicode
El Consorcio Unicode es una organización sin fines de lucro que coordina el desarrollo de Unicode. Los miembros de pleno derecho incluyen a la mayoría de las principales empresas de software y hardware con algún interés en los estándares de procesamiento de texto, como Adobe , Apple , Facebook , Google , IBM , Microsoft , Netflix y SAP SE . [14]
A lo largo de los años, varios países o agencias gubernamentales han sido miembros del Consorcio Unicode. Actualmente, solo el Ministerio de Dotaciones y Asuntos Religiosos (Omán) es miembro de pleno derecho con derecho a voto. [14]
El Consorcio tiene el ambicioso objetivo de reemplazar eventualmente los esquemas de codificación de caracteres existentes con Unicode y sus esquemas estándar de formato de transformación Unicode (UTF), ya que muchos de los esquemas existentes son limitados en tamaño y alcance y son incompatibles con entornos multilingües .
Scripts cubiertos

Unicode cubre casi todos los scripts ( sistemas de escritura ) que se utilizan actualmente. [15] [ verificación fallida ] [16]
Un total de 154 escrituras están incluidas en la última versión de Unicode (que cubre alfabetos , abugidas y silabarios ), aunque todavía hay escrituras que aún no están codificadas, particularmente las que se utilizan principalmente en contextos históricos, litúrgicos y académicos. También se producen más adiciones de caracteres a los guiones ya codificados, así como símbolos, en particular para las matemáticas y la música (en forma de notas y símbolos rítmicos).
El Comité de la hoja de ruta Unicode ( Michael Everson , Rick McGowan, Ken Whistler, VS Umamaheswaran [17] ) mantiene la lista de scripts que son candidatos o candidatos potenciales para la codificación y sus asignaciones provisionales de bloques de código en la página de la hoja de ruta Unicode del sitio web del Consorcio Unicode . Para algunos guiones de la Hoja de ruta, como el guión pequeño de Jurchen y Khitan , se han realizado propuestas de codificación y están avanzando en el proceso de aprobación. Para otros guiones, como Maya (además de números) y Rongorongo , aún no se ha hecho ninguna propuesta, y esperan un acuerdo sobre el repertorio de personajes y otros detalles de las comunidades de usuarios involucradas.
Algunos scripts inventados modernos que aún no se han incluido en Unicode (por ejemplo, Tengwar ) o que no califican para su inclusión en Unicode debido a la falta de uso en el mundo real (por ejemplo, Klingon ) se enumeran en el Registro Unicode de ConScript , junto con los no oficiales. pero asignaciones de códigos de áreas de uso privado ampliamente utilizadas .
También hay una iniciativa de fuentes medievales Unicode centrada en personajes medievales latinos especiales. Parte de estas propuestas ya se han incluido en Unicode.
La Iniciativa de codificación de guiones , un proyecto dirigido por Deborah Anderson en la Universidad de California, Berkeley, se fundó en 2002 con el objetivo de financiar propuestas para guiones que aún no están codificados en el estándar. El proyecto se ha convertido en una fuente importante de adiciones propuestas a la norma en los últimos años. [18]
Versiones
El Consorcio Unicode y la Organización Internacional para la Estandarización han desarrollado un repertorio compartido después de la publicación inicial del Estándar Unicode en 1991. De hecho, Unicode y el Conjunto de Caracteres Codificados Universal de ISO usan nombres de caracteres y puntos de código idénticos. Sin embargo, las versiones Unicode difieren de sus equivalentes ISO de dos formas significativas.
En primer lugar, mientras que UCS es un mapa de caracteres simple, Unicode especifica las reglas, algoritmos y propiedades necesarias para lograr la interoperabilidad entre diferentes plataformas e idiomas. Por lo tanto, el estándar Unicode incluye más información, que cubre, en profundidad, temas como la codificación, la intercalación y la representación bit a bit . También proporciona un catálogo completo de propiedades de caracteres, incluidas las necesarias para admitir texto bidireccional , así como gráficos visuales y conjuntos de datos de referencia para ayudar a los implementadores. Anteriormente, The Unicode Standard se vendía como un volumen de impresión que contenía la especificación principal completa, los anexos estándar y las tablas de códigos. Sin embargo, Unicode 5.0, publicado en 2006, fue la última versión impresa de esta manera. A partir de la versión 5.2, solo se puede comprar la especificación principal, publicada como libro de bolsillo de impresión bajo demanda. [19] El texto completo, por otro lado, se publica como PDF gratuito en el sitio web Unicode.
Una razón práctica para este método de publicación destaca la segunda diferencia significativa entre UCS y Unicode: la frecuencia con la que se publican las versiones actualizadas y se agregan nuevos caracteres. El estándar Unicode ha lanzado regularmente versiones ampliadas anuales, ocasionalmente con más de una versión lanzada en un año calendario y con casos raros en los que el lanzamiento programado tuvo que posponerse. Por ejemplo, en abril de 2020, solo un mes después de la publicación de la versión 13.0, el Consorcio Unicode anunció que había cambiado la fecha de lanzamiento prevista para la versión 14.0, retrasándola seis meses desde marzo de 2021 hasta septiembre de 2021 debido a la pandemia de COVID-19 . Se promete que Unicode 14.0 incluirá al menos cinco nuevos scripts, así como treinta y siete nuevos caracteres emoji. [20]
Hasta ahora, se han publicado las siguientes versiones principales y secundarias del estándar Unicode. Las versiones de actualización, que no incluyen ningún cambio en el repertorio de caracteres, se indican con el tercer número (por ejemplo, "versión 4.0.1") y se omiten en la tabla siguiente. [21]
Versión | Fecha | Libro | Correspondiente ISO / IEC 10646 edición | Guiones | Caracteres | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Total [nota de tabla 1] | Adiciones notables | ||||||||||
1.0.0 [22] | Octubre de 1991 | ISBN 0-201-56788-1 (Vol. 1) | 24 | 7.129 Sin contar el "espacio" o los 33 caracteres que no se imprimen (7.163 en total) [22] | El repertorio inicial cubre estos guiones: árabe , armenio , bengalí , bopomofo , cirílico , devanagari , georgiano , griego y copto , gujarati , gurmukhi , hangul , hebreo , hiragana , kannada , katakana , lao , latín , malayalam , oriya , tamil , telugu , Tailandés y tibetano . [22] | ||||||
1.0.1 [23] | Junio de 1992 | ISBN 0-201-60845-6 (Vol. 2) | 25 | 28,327 ( 21,204 añadidos; 6 eliminados) | Se define el conjunto inicial de 20.902 ideogramas unificados CJK . [23] | ||||||
1.1 [24] | De junio de 1993 | ISO / IEC 10646-1: 1993 | 24 | 34.168 (5.963 añadidos; 89 eliminados; 33 reclasificados como caracteres de control) | Se agregaron 4.306 sílabas Hangul más al conjunto original de 2.350 caracteres. Tibetano eliminado. [24] | ||||||
2,0 [25] | Julio de 1996 | ISBN 0-201-48345-9 | ISO / IEC 10646-1: 1993 más enmiendas 5, 6 y 7 | 25 | 38,885 (11,373 añadidos; 6,656 eliminados) | Se eliminó el conjunto original de sílabas Hangul y se agregó un nuevo conjunto de 11.172 sílabas Hangul en una nueva ubicación. Tibetan volvió a agregar en una nueva ubicación y con un repertorio de personajes diferente. Mecanismo de carácter sustituto definido, y áreas de uso privado del Plano 15 y del Plano 16 asignadas. [25] | |||||
2.1 [26] | Mayo de 1998 | ISO / IEC 10646-1: 1993 más las Enmiendas 5, 6 y 7, así como dos caracteres de la Enmienda 18 | 25 | 38,887 (2 añadidos) | Se han añadido el símbolo del euro y el carácter de sustitución de objetos . [26] | ||||||
3,0 | Septiembre de 1999 | ISBN 0-201-61633-5 | ISO / IEC 10646-1: 2000 | 38 | 49.194 (10.307 añadidas) | Se agregaron cherokee , etíope , jemer , mongol , birmano , ogham , rúnico , cingalés , siríaco , thaana , sílabas aborígenes canadienses unificadas y sílabas Yi , así como un conjunto de patrones en Braille . [27] | |||||
3.1 | Marzo de 2001 | ISO / IEC 10646-1: 2000 ISO / IEC 10646-2: 2001 | 41 | 94,140 ( 44,946 añadidos) | Se agregaron Deseret , Gothic y Old Italic , así como conjuntos de símbolos para la música occidental y la música bizantina , y 42,711 ideogramas unificados de CJK adicionales . [28] | ||||||
3.2 | Marzo de 2002 | ISO / IEC 10646-1: 2000 más Enmienda 1 ISO / IEC 10646-2: 2001 | 45 | 95.156 (1.016 añadidos) | Se agregaron las escrituras filipinas Buhid , Hanunó'o , Tagalog y Tagbanwa . [29] | ||||||
4.0 | Abril de 2003 | ISBN 0-321-18578-1 | ISO / IEC 10646: 2003 | 52 | 96,382 (1,226 añadidas) | Silabario chipriota , Limbu , Linear B , Osmanya , Shavian , Tai Le y Ugaritic agregados, así como símbolos de hexagrama . [30] | |||||
4.1 | Marzo de 2005 | ISO / IEC 10646: 2003 más Enmienda 1 | 59 | 97.655 (1.273 añadidos) | Buginés , Glagolítico , Kharoshthi , Nuevo Tai Lue , Persa antiguo , Syloti Nagri y Tifinagh añadieron, y el copto se desunió del griego . También se agregaron números y símbolos musicales griegos antiguos . [31] | ||||||
5,0 | Julio de 2006 | ISBN 0-321-48091-0 | ISO / IEC 10646: 2003 más las Enmiendas 1 y 2, así como cuatro caracteres de la Enmienda 3 | 64 | 99,024 (1,369 agregado) | Se agregaron balinés , cuneiforme , N'Ko , Phags-pa y fenicio . [32] | |||||
5.1 | Abril de 2008 | ISO / IEC 10646: 2003 más enmiendas 1, 2, 3 y 4 | 75 | 100.648 (1.624 añadidos) | Se agregaron Carian , Cham , Kayah Li , Lepcha , Lycian , Lydian , Ol Chiki , Rejang , Saurashtra , Sundanese y Vai , así como conjuntos de símbolos para el disco de Phaistos , fichas de Mahjong y fichas de dominó . También hubo adiciones importantes para birmano , adiciones de letras y abreviaturas de escribas utilizadas en manuscritos medievales , y la adición de Capital ẞ . [33] | ||||||
5.2 | Octubre de 2009 | ISBN 978-1-936213-00-9 | ISO / IEC 10646: 2003 más enmiendas 1, 2, 3, 4, 5 y 6 | 90 | 107,296 ( 6,648 añadidos) | Avestan , Bamum , jeroglíficos egipcios (el conjunto Gardiner , que comprende 1.071 caracteres), arameo imperial , pahlavi inscripcional , parto inscripcional , javanés , kaithi , Lisu , Meetei Mayek , antiguo árabe del sur , antiguo turco , samaritano , Tai Tham y Tai Viet añadidos. 4.149 ideogramas unificados de CJK adicionales (CJK-C), así como Jamo extendido para el antiguo Hangul y caracteres para el sánscrito védico . [34] | |||||
6.0 | Octubre de 2010 | ISBN 978-1-936213-01-6 | ISO / IEC 10646: 2010 más el signo de la rupia india | 93 | 109,384 (2,088 añadidos) | Batak , Brahmi , Mandaic , símbolos de naipes , símbolos de transporte y mapas , símbolos alquímicos , emoticonos y emoji . Se agregaron 222 ideogramas unificados de CJK (CJK-D) adicionales. [35] | |||||
6.1 | Enero de 2012 | ISBN 978-1-936213-02-3 | ISO / IEC 10646: 2012 | 100 | 110,116 (732 añadidos) | Chakma , cursiva meroítica , jeroglíficos meroíticos , Miao , Sharada , Sora Sompeng y Takri . [36] | |||||
6.2 | septiembre 2012 | ISBN 978-1-936213-07-8 | ISO / IEC 10646: 2012 más el signo de la lira turca | 100 | 110,117 (1 agregado) | Signo de la lira turca . [37] | |||||
6.3 | Septiembre 2013 | ISBN 978-1-936213-08-5 | ISO / IEC 10646: 2012 más seis caracteres | 100 | 110,122 (5 añadidos) | 5 caracteres de formato bidireccional. [38] | |||||
7.0 | Junio de 2014 | ISBN 978-1-936213-09-2 | ISO / IEC 10646: 2012 más las enmiendas 1 y 2, así como el signo del rublo | 123 | 112,956 (2,834 añadidos) | Bassa Vah , Albanés caucásico , Duployan , Elbasan , Grantha , Khojki , Khudawadi , Linear A , Mahajani , Manichaean , Mende Kikakui , Modi , Mro , Nabataean , Old North Arabian , Old Permic , Pahawh Hmong , Palmyrene , Pau Cin Hau , Psalter Pahlavi , Siddham , Tirhuta , Warang Citi y Dingbats . [39] | |||||
8.0 | Junio de 2015 | ISBN 978-1-936213-10-8 | ISO / IEC 10646: 2014 más la Enmienda 1, así como el signo de Lari , nueve ideogramas unificados CJK y 41 caracteres emoji [40] | 129 | 120.672 ( 7.716 añadidos) | Ahom , jeroglíficos de Anatolia , Hatran , Multani , húngaro antiguo , SignWriting , 5.771 ideogramas unificados CJK , un conjunto de letras minúsculas para Cherokee y cinco modificadores de tono de piel emoji . [41] | |||||
9.0 | Junio de 2016 | ISBN 978-1-936213-13-9 | ISO / IEC 10646: 2014 más las enmiendas 1 y 2, así como Adlam, Newa, símbolos de televisión japoneses y 74 emoji y símbolos [42] | 135 | 128.172 (7.500 añadidos) | Adlam , Bhaiksuki , Marchen , Newa , Osage , tangut , y 72 emoji . [43] [44] | |||||
10.0 | Junio de 2017 | ISBN 978-1-936213-16-0 | ISO / IEC 10646: 2017 más 56 caracteres emoji , 285 caracteres hentaigana y 3 caracteres Zanabazar Square [45] | 139 | 136.690 (8.518 añadidos) | Plaza Zanabazar , Soyombo , Masaram Gondi , Nüshu , hentaigana ( hiragana no estándar ), 7,494 ideogramas unificados CJK y 56 emoji . | |||||
11,0 | Junio de 2018 | ISBN 978-1-936213-19-1 | ISO / IEC 10646: 2017 más la Enmienda 1, así como 46 letras mayúsculas georgianas Mtavruli, 5 ideogramas unificados CJK y 66 caracteres emoji. [46] | 146 | 137,374 (684 añadidos) | Dogra , letras mayúsculas georgianas Mtavruli , Gunjala Gondi , Hanifi Rohingya , números Indic Siyaq , Makasar , Medefaidrin , Old Sogdian y Sogdian , números mayas , 5 ideogramas unificados CJK que se necesitan con urgencia , símbolos para xiangqi (ajedrez chino) y calificaciones de estrellas , y 145 emoji . [47] | |||||
12,0 | Marzo de 2019 | ISBN 978-1-936213-22-1 | ISO / IEC 10646: 2017 más las Enmiendas 1 y 2, así como 62 caracteres adicionales. [48] | 150 | 137,928 (554 añadidos) | Adiciones de escritura Elymaic , Nandinagari , Nyiakeng Puachue Hmong , Wancho , Miao para varios dialectos Miao y Yi en China, letras minúsculas hiragana y katakana para escribir japonés arcaico, fracciones y símbolos históricos tamil , letras lao para pali , letras latinas para transliteración egiptológica y ugarítica , controles de formato de jeroglíficos y 61 emoji . [49] | |||||
12,1 | Mayo de 2019 | ISBN 978-1-936213-25-2 | 150 | 137,929 (1 agregado) | Agrega un solo carácter en U + 32FF para la forma de ligadura cuadrada del nombre de la era Reiwa . [50] | ||||||
13,0 [51] | Marzo de 2020 | ISBN 978-1-936213-26-9 | ISO / IEC 10646: 2020 [52] | 154 | 143,859 ( 5,930 agregadas) | Chorasmian , Dives Akuru , escritura pequeña Khitan , yezidi , 4969 ideografías unificadas CJK añadidas (incluidas 4939 en Ext. G ), añadidos de escritura árabe utilizados para escribir hausa , wolof y otros idiomas en África y otros añadidos utilizados para escribir hindko y punjabi en Pakistán, adiciones de Bopomofo utilizadas para cantonés, símbolos de licencia Creative Commons, caracteres gráficos para compatibilidad con teletexto y sistemas informáticos domésticos de las décadas de 1970 y 1980, y 55 emoji. [51] |
- ^ El número de caracteres que se muestran para cada versión de Unicode es el número total de caracteres gráficos y el formato (es decir, excluyendo los caracteres de uso privado , caracteres de control , noncharacters y puntos de código de sustitución ).
Arquitectura y terminología
El estándar Unicode define un espacio de código, [53] un conjunto de valores numéricos que van de 0 a 10FFFF 16 , [54] denominados puntos de código [55] y denotados como U + 0000 a U + 10FFFF ("U +" más el valor del punto de código en hexadecimal , precedido de ceros a la izquierda según sea necesario para dar como resultado un mínimo de cuatro dígitos, p. ej. , U + 00F7 para el signo de división, ÷, frente a U + 13254 para el jeroglífico egipcio que designa un refugio de caña o una pared sinuosa () [56] ), respectivamente. De estos 2 16 + 2 20 puntos de código definidos, los puntos de código de U + D800 a U + DFFF, que se utilizan para codificar pares sustitutos en UTF-16 , están reservados por el Estándar y no pueden utilizarse para codificar caracteres válidos. resultando en un total neto de 2 16 - 2 11 + 2 20 = 1,112,064 puntos de código posibles correspondientes a caracteres Unicode válidos. No todos estos puntos de código corresponden necesariamente a caracteres visibles; varios, por ejemplo, están asignados a códigos de control como el retorno de carro .
Planos y bloques de código
El espacio de código Unicode se divide en diecisiete planos , numerados del 0 al 16:
Se accede a todos los puntos de código en el BMP como una sola unidad de código en codificación UTF-16 y se pueden codificar en uno, dos o tres bytes en UTF-8 . Se accede a los puntos de código en los planos 1 a 16 ( planos suplementarios ) como pares sustitutos en UTF-16 y se codifican en cuatro bytes en UTF-8.
Dentro de cada plano, los caracteres se asignan dentro de bloques con nombre de caracteres relacionados. Aunque los bloques tienen un tamaño arbitrario, siempre son un múltiplo de 16 puntos de código y, a menudo, un múltiplo de 128 puntos de código. Los caracteres necesarios para un guión determinado pueden estar distribuidos en varios bloques diferentes.
Propiedad de categoría general
Cada punto de código tiene una única propiedad de categoría general . Las categorías principales se indican: letra, marca, número, puntuación, símbolo, separador y otro. Dentro de estas categorías, hay subdivisiones. En la mayoría de los casos, se deben utilizar otras propiedades para especificar suficientemente las características de un punto de código. Las posibles Categorías Generales son:
Categoría general ( propiedad de carácter Unicode ) [a] | |||||
---|---|---|---|---|---|
Valor | Categoría Mayor, menor | Tipo básico [b] | Personaje asignado [b] | Contar (a partir de 13.0) | Observaciones |
L, letra | |||||
Lu | Letra, mayúscula | Gráfico | Personaje | 1,791 | |
Ll | Letra minúscula | Gráfico | Personaje | 2,155 | |
Teniente | Carta, título | Gráfico | Personaje | 31 | Ligaduras que contienen mayúsculas seguidas de minúsculas (p. Ej., Dž , Lj , Nj y Dz ) |
Lm | Letra, modificador | Gráfico | Personaje | 260 | Una letra modificadora |
Lo | Carta, otro | Gráfico | Personaje | 127,004 | Un ideograma o una letra en un alfabeto unicase |
M, marca | |||||
Minnesota | Mark, sin espaciamiento | Gráfico | Personaje | 1.839 | |
Mc | Marca, combinación de espaciado | Gráfico | Personaje | 443 | |
Me | Mark, adjuntando | Gráfico | Personaje | 13 | |
N, número | |||||
Dakota del Norte | Número, dígito decimal | Gráfico | Personaje | 650 | Todos estos, y solo estos, tienen Tipo numérico = De [c] |
Nl | Número, letra | Gráfico | Personaje | 236 | Números compuestos por letras o símbolos similares a letras (p. Ej., Números romanos ) |
No | Número, otro | Gráfico | Personaje | 895 | Por ejemplo, fracciones vulgares , dígitos en superíndice y subíndice |
P, puntuación | |||||
Ordenador personal | Puntuación, conector | Gráfico | Personaje | 10 | Incluye subrayado "_" |
Pd | Puntuación, guión | Gráfico | Personaje | 25 | Incluye varios caracteres de guión. |
PD | Puntuación, abierto | Gráfico | Personaje | 75 | Caracteres de corchete de apertura |
Educación física | Puntuación, cerrar | Gráfico | Personaje | 73 | Caracteres de corchete de cierre |
Pi | Puntuación, cita inicial | Gráfico | Personaje | 12 | Comillas de apertura . No incluye las comillas ASCII "neutrales". Puede comportarse como Ps o Pe dependiendo del uso |
Pf | Puntuación, cita final | Gráfico | Personaje | 10 | Comillas de cierre. Puede comportarse como Ps o Pe dependiendo del uso |
Correos | Puntuación, otro | Gráfico | Personaje | 593 | |
S, símbolo | |||||
Sm | Símbolo, matemáticas | Gráfico | Personaje | 948 | Símbolos matemáticos (p. Ej., + , - , = , × , ÷ , √ , ∊ , ≠ ). No incluye paréntesis y corchetes, que se encuentran en las categorías Ps y Pe. ¡Tampoco incluye ! , * , - o / , que a pesar de su uso frecuente como operadores matemáticos, se consideran principalmente "puntuación". |
Carolina del Sur | Símbolo, moneda | Gráfico | Personaje | 62 | Símbolos de moneda |
Sk | Símbolo, modificador | Gráfico | Personaje | 123 | |
Entonces | Símbolo, otro | Gráfico | Personaje | 6.431 | |
Z, separador | |||||
Zs | Separador, espacio | Gráfico | Personaje | 17 | Incluye el espacio, pero no TAB , CR o LF , que son Cc |
Zl | Separador, línea | Formato | Personaje | 1 | Solo SEPARADOR DE LÍNEA U + 2028 (LSEP) |
Zp | Separador, párrafo | Formato | Personaje | 1 | Solo SEPARADOR DE PÁRRAFOS U + 2029 (PSEP) |
C, otro | |||||
Cc | Otro, control | Control | Personaje | 65 (nunca cambiará) [c] | Sin nombre, [d] |
Cf | Otro, formato | Formato | Personaje | 161 | Incluye el guión suave , caracteres de control de unión ( zwnj y zwj ), caracteres de control para admitir texto bidireccional y caracteres de etiquetas de idioma |
Cs | Otro, sustituto | Sustituto | No (solo se usa en UTF-16 ) | 2,048 (nunca cambiará) [c] | Sin nombre, [d] |
Co | Otro uso privado | Uso privado | Carácter (pero sin interpretación especificada) | 137.468 en total (nunca cambiará) [c] ( 6.400 en BMP , 131.068 en los aviones 15-16 ) | Sin nombre, [d] |
Cn | Otro, no asignado | Sin carácter | No | 66 (nunca cambiará) [c] | Sin nombre, [d] |
Reservado | No | 830,606 | Sin nombre, [d] | ||
|
Los puntos de código en el rango U + D800 – U + DBFF (1.024 puntos de código) se conocen como puntos de código sustitutos altos, y los puntos de código en el rango U + DC00 – U + DFFF (1.024 puntos de código) se conocen como sustitutos bajos puntos de código. Un punto de código sustituto alto seguido de un punto de código sustituto bajo forma un par sustituto en UTF-16 para representar puntos de código mayores que U + FFFF. De lo contrario, estos puntos de código no se pueden usar (esta regla se ignora a menudo en la práctica, especialmente cuando no se usa UTF-16).
Se garantiza que nunca se utilizará un pequeño conjunto de puntos de código para codificar caracteres, aunque las aplicaciones pueden hacer uso de estos puntos de código internamente si así lo desean. Hay sesenta y seis de estos no caracteres : U + FDD0 – U + FDEF y cualquier punto de código que termine en el valor FFFE o FFFF (es decir, U + FFFE, U + FFFF, U + 1FFFE, U + 1FFFF, ... U + 10FFFE, U + 10FFFF). El conjunto de no caracteres es estable y nunca se definirán nuevos no caracteres. [57] Al igual que los sustitutos, la regla de que estos no se pueden usar a menudo se ignora, aunque la operación de la marca de orden de bytes asume que U + FFFE nunca será el primer punto de código en un texto.
Excluir sustitutos y no caracteres deja 1,111,998 puntos de código disponibles para su uso.
Los puntos de código de uso privado se consideran caracteres asignados, pero no tienen una interpretación especificada por el estándar Unicode [58], por lo que cualquier intercambio de tales caracteres requiere un acuerdo entre el remitente y el receptor sobre su interpretación. Hay tres áreas de uso privado en el espacio de código Unicode:
- Área de uso privado: U + E000 – U + F8FF (6400 caracteres),
- Área de uso privado complementario-A: U + F0000 – U + FFFFD (65,534 caracteres),
- Área complementaria de uso privado-B: U + 100000 – U + 10FFFD (65,534 caracteres).
Los caracteres gráficos son caracteres definidos por Unicode para tener una semántica particular, y tienen una forma de glifo visible o representan un espacio visible. A partir de Unicode 13.0 hay 143.696 caracteres gráficos.
Los caracteres de formato son caracteres que no tienen una apariencia visible, pero que pueden tener un efecto sobre la apariencia o el comportamiento de los personajes vecinos. Por ejemplo,U + 200C ANCHO CERO NO UNIDOR yU + 200D CERO WIDTH JOINER se puede utilizar para cambiar el comportamiento de configuración predeterminado de caracteres adyacentes (por ejemplo, para inhibir ligaduras o solicitar la formación de ligaduras). Hay 163 caracteres de formato en Unicode 13.0.
Sesenta y cinco puntos de código (U + 0000 – U + 001F y U + 007F – U + 009F) están reservados como códigos de control y corresponden a los códigos de control C0 y C1 definidos en ISO / IEC 6429 . U + 0009 (Tab), U + 000A (salto de línea) y U + 000D (retorno de carro) se utilizan ampliamente en textos codificados en Unicode. En la práctica, los puntos de código C1 a menudo se traducen incorrectamente ( mojibake ) como los caracteres heredados de Windows-1252 utilizados por algunos textos en inglés y Europa occidental.
Los caracteres gráficos, caracteres de formato, caracteres de código de control y caracteres de uso privado se conocen colectivamente como caracteres asignados . Los puntos de código reservados son aquellos puntos de código que están disponibles para su uso, pero que aún no están asignados. A partir de Unicode 13.0 hay 830.606 puntos de código reservados.
Personajes abstractos
El conjunto de caracteres gráficos y de formato definidos por Unicode no se corresponde directamente con el repertorio de caracteres abstractos que se pueden representar en Unicode. Unicode codifica caracteres asociando un carácter abstracto con un punto de código particular. [59] Sin embargo, no todos los caracteres abstractos están codificados como un solo carácter Unicode, y algunos caracteres abstractos pueden representarse en Unicode mediante una secuencia de dos o más caracteres. Por ejemplo, una letra minúscula latina "i" con un ogonek , un punto arriba y un acento agudo , que se requiere en lituano , está representada por la secuencia de caracteres U + 012F, U + 0307, U + 0301. Unicode mantiene una lista de secuencias de caracteres con nombres únicos para caracteres abstractos que no están codificados directamente en Unicode. [60]
Todos los caracteres gráficos, de formato y de uso privado tienen un nombre único e inmutable por el cual pueden ser identificados. Esta inmutabilidad ha sido garantizada desde la versión 2.0 de Unicode por la política de Estabilidad de Nombres. [57] En los casos en que el nombre sea gravemente defectuoso y engañoso, o tenga un error tipográfico grave, se puede definir un alias formal y se alienta a las aplicaciones a utilizar el alias formal en lugar del nombre oficial del personaje. Por ejemplo,U + A015 ꀕ YI SYLLABLE WU tiene el alias formal YI SYLLABLE ITERATION MARK , yU + FE18 ︘ FORMULARIO DE PRESENTACIÓN PARA SUJETADOR LENTICULAR BLANCO DERECHO VERTICAL KC ET ( sic ) tiene el alias formal PRESENTACIÓN DE FORMA vertical derecho BLANCO LENTICULAR BRA CK ET . [61]
Caracteres confeccionados frente a compuestos
Unicode incluye un mecanismo para modificar caracteres que amplía enormemente el repertorio de glifos admitido. Esto cubre el uso de la combinación de signos diacríticos que el usuario puede agregar después del carácter base. Se pueden aplicar simultáneamente varios signos diacríticos de combinación al mismo carácter. Unicode también contiene versiones precompuestas de la mayoría de las combinaciones de letras y diacríticos en uso normal. Estos simplifican la conversión hacia y desde codificaciones heredadas y permiten que las aplicaciones utilicen Unicode como formato de texto interno sin tener que implementar la combinación de caracteres. Por ejemplo, é se puede representar en Unicode como U + 0065 ( LETRA E MINÚSCULA LATINA ) seguida de U + 0301 ( COMBINANDO ACENTO AGUDO ), pero también se puede representar como el carácter precompuesto U + 00E9 ( LETRA E MINÚSCULA LATINA CON AGUDO ). Por lo tanto, en muchos casos, los usuarios tienen múltiples formas de codificar el mismo carácter. Para hacer frente a esto, Unicode proporciona el mecanismo de equivalencia canónica .
Un ejemplo de esto surge con Hangul , el alfabeto coreano. Unicode proporciona un mecanismo para componer sílabas Hangul con sus subcomponentes individuales, conocido como Hangul Jamo . Sin embargo, también proporciona 11.172 combinaciones de sílabas precompuestas hechas del jamo más común.
Los caracteres CJK actualmente tienen códigos solo para su forma precompuesta. Aún así, la mayoría de esos caracteres comprenden elementos más simples (llamados radicales ), por lo que, en principio, Unicode podría haberlos descompuesto como lo hizo con Hangul. Esto habría reducido en gran medida la cantidad de puntos de código requeridos, al tiempo que permitiría la visualización de prácticamente todos los caracteres imaginables (lo que podría eliminar algunos de los problemas causados por la unificación Han ). Algunos métodos de entrada utilizan una idea similar , como Cangjie y Wubi . Sin embargo, los intentos de hacer esto para la codificación de caracteres han tropezado con el hecho de que los caracteres chinos no se descomponen tan simple o regularmente como lo hace Hangul.
Se proporcionó un conjunto de radicales en Unicode 3.0 (radicales CJK entre U + 2E80 y U + 2EFF, radicales KangXi en U + 2F00 a U + 2FDF y caracteres de descripción ideográfica de U + 2FF0 a U + 2FFB), pero el estándar Unicode (cap. 12.2 de Unicode 5.2) advierte contra el uso de secuencias de descripción ideográfica como una representación alternativa para caracteres previamente codificados:
Este proceso es diferente de una codificación formal de un ideograma. No existe una descripción canónica de ideogramas no codificados; no hay una semántica asignada a los ideogramas descritos; no hay equivalencia definida para los ideogramas descritos. Conceptualmente, las descripciones ideográficas son más parecidas a la frase inglesa "an 'e' con un acento agudo" que a la secuencia de caracteres .
Ligaduras
Muchas escrituras, incluidos el árabe y el devanāgarī , tienen reglas ortográficas especiales que requieren que ciertas combinaciones de formas de letras se combinen en formas de ligadura especiales . Las reglas que gobiernan la formación de ligaduras pueden ser bastante complejas, requiriendo tecnologías especiales de configuración de guiones como ACE (motor caligráfico árabe de DecoType en la década de 1980 y utilizado para generar todos los ejemplos árabes en las ediciones impresas del estándar Unicode), que se convirtió en la prueba de concepto para OpenType (de Adobe y Microsoft), Graphite (de SIL International ) o AAT (de Apple).
Las instrucciones también están integradas en las fuentes para indicarle al sistema operativo cómo generar correctamente diferentes secuencias de caracteres. Una solución simple para la colocación de marcas combinadas o diacríticos es asignar a las marcas un ancho de cero y colocar el glifo a la izquierda o derecha del lado izquierdo (dependiendo de la dirección del guión con el que se pretenden usar). Una marca manejada de esta manera aparecerá sobre cualquier carácter que la preceda, pero no ajustará su posición en relación con el ancho o alto del glifo base; puede resultar visualmente incómodo y puede superponerse a algunos glifos. El apilamiento real es imposible, pero se puede aproximar en casos limitados (por ejemplo, las vocales y las marcas de tono de combinación superior tailandesa pueden estar en diferentes alturas para empezar). Generalmente, este enfoque solo es efectivo en fuentes monoespaciadas, pero puede usarse como un método de renderizado alternativo cuando fallan métodos más complejos.
Subconjuntos estandarizados
Varios subconjuntos de Unicode están estandarizados: Microsoft Windows desde Windows NT 4.0 es compatible con WGL-4 con 657 caracteres, que se considera compatible con todos los idiomas europeos contemporáneos que utilizan la escritura latina, griega o cirílica. Otros subconjuntos estandarizados de Unicode incluyen los subconjuntos europeos multilingües: [62]
MES-1 (solo caracteres latinos, 335 caracteres), MES-2 (caracteres latinos, griegos y cirílicos 1062) [63] y MES-3A y MES-3B (dos subconjuntos más grandes, no se muestran aquí). Tenga en cuenta que MES-2 incluye todos los caracteres de MES-1 y WGL-4.
Fila | Células | Rango (s) |
---|---|---|
00 | 20–7E | Latín básico (00–7F) |
A0 – FF | Suplemento Latin-1 (80 – FF) | |
01 | 00–13, 14–15, 16–2B, 2C – 2D, 2E – 4D, 4E – 4F, 50–7E, 7F | Latín extendido-A (00–7F) |
8F, 92, B7, DE-EF, FA-FF | Latín extendido-B (80 – FF ... ) | |
02 | 18–1B, 1E – 1F | Latín extendido-B ( ... 00–4F) |
59, 7C, 92 | Extensiones IPA (50 – AF) | |
BB – BD, C6, C7, C9, D6, D8 – DB, DC, DD, DF, EE | Letras modificadoras de espaciado (B0 – FF) | |
03 | 74–75, 7A, 7E, 84–8A, 8C, 8E – A1, A3 – CE, D7, DA – E1 | Griego (70 – FF) |
04 | 00–5F, 90–91, 92 – C4, C7 – C8, CB – CC, D0 – EB, EE – F5, F8 – F9 | Cirílico (00 – FF) |
1E | 02–03, 0A – 0B, 1E – 1F, 40–41, 56–57, 60–61, 6A – 6B, 80–85, 9B, F2 – F3 | Latín extendido adicional (00 – FF) |
1F | 00–15, 18–1D, 20–45, 48–4D, 50–57, 59, 5B, 5D, 5F – 7D, 80 – B4, B6 – C4, C6 – D3, D6 – DB, DD – EF, F2 – F4, F6 – FE | Griego extendido (00 – FF) |
20 | 13–14, 15, 17, 18–19, 1A – 1B, 1C – 1D, 1E, 20–22, 26, 30, 32–33, 39–3A, 3C, 3E, 44, 4A | Puntuación general (00–6F) |
7F , 82 | Superíndices y subíndices (70–9F) | |
A3 – A4, A7, AC, AF | Símbolos de moneda (A0 – CF) | |
21 | 05, 13, 16, 22, 26, 2E | Símbolos similares a letras (00–4F) |
5B – 5E | Formularios numéricos (50–8F) | |
90–93, 94–95, A8 | Flechas (90 – FF) | |
22 | 00, 02, 03, 06, 08–09, 0F, 11–12, 15, 19–1A, 1E – 1F, 27–28, 29, 2A, 2B, 48, 59, 60–61, 64–65, 82–83, 95, 97 | Operadores matemáticos (00 – FF) |
23 | 02, 0A, 20–21, 29–2A | Técnico misceláneo (00 – FF) |
25 | 00, 02, 0C, 10, 14, 18, 1C, 24, 2C, 34, 3C, 50–6C | Dibujo de caja (00–7F) |
80, 84, 88, 8C, 90–93 | Elementos de bloque (80–9F) | |
A0 – A1, AA – AC, B2, BA, BC, C4, CA – CB, CF, D8 – D9, E6 | Formas geométricas (A0 – FF) | |
26 | 3A – 3C, 40, 42, 60, 63, 65–66, 6A, 6B | Símbolos varios (00 – FF) |
F0 | (01–02) | Área de uso privado (00 – FF ...) |
pensión completa | 01–02 | Formularios de presentación alfabéticos (00–4F) |
FF | FD | Especiales |
El software de renderizado que no puede procesar un carácter Unicode adecuadamente a menudo lo muestra como un rectángulo abierto, o el " carácter de reemplazo " Unicode (U + FFFD, ), para indicar la posición del carácter no reconocido. Algunos sistemas han intentado proporcionar más información sobre dichos personajes. De Apple fuente de Último Recurso mostrará un glifo sustituto que indica el rango Unicode del carácter y el SIL Internacional 's fuente Unicode repliegue mostrará un cuadro que muestra el valor escalar hexadecimal del carácter.
Mapeo y codificaciones
Se han especificado varios mecanismos para almacenar una serie de puntos de código como una serie de bytes.
Unicode define dos métodos de asignación: las codificaciones del formato de transformación Unicode (UTF) y las codificaciones del juego de caracteres codificados universal (UCS). Una codificación mapea (posiblemente un subconjunto de) el rango de puntos de código Unicode a secuencias de valores en algún rango de tamaño fijo, denominadas unidades de código . Todas las codificaciones UTF asignan puntos de código a una secuencia única de bytes. [64] Los números en los nombres de las codificaciones indican el número de bits por unidad de código (para codificaciones UTF) o el número de bytes por unidad de código (para codificaciones UCS y UTF-1). UTF-8 y UTF-16 son las codificaciones más utilizadas. UCS-2 es un subconjunto obsoleto de UTF-16; UCS-4 y UTF-32 son funcionalmente equivalentes.
Las codificaciones UTF incluyen:
- UTF-1 , un predecesor retirado de UTF-8, maximiza la compatibilidad con ISO 2022 , que ya no forma parte del estándar Unicode
- UTF-7 , una codificación obsoleta de 7 bits que a veces se usa en el correo electrónico (no forma parte del estándar Unicode , pero solo se documenta como un RFC informativo , es decir, no en la vía de estándares de Internet)
- UTF-8 , utiliza de uno a cuatro bytes para cada punto de código, maximiza la compatibilidad con ASCII
- UTF-EBCDIC , similar a UTF-8 pero diseñado para ser compatible con EBCDIC (no forma parte del estándar Unicode )
- UTF-16 , utiliza una o dos unidades de código de 16 bits por punto de código, no puede codificar sustitutos
- UTF-32 , utiliza una unidad de código de 32 bits por punto de código
UTF-8 utiliza de uno a cuatro bytes por punto de código y, al ser compacto para escrituras latinas y compatible con ASCII, proporciona la codificación estándar de facto para el intercambio de texto Unicode. FreeBSD y las distribuciones de Linux más recientes lo utilizan como un reemplazo directo de las codificaciones heredadas en el manejo de texto general.
Las codificaciones UCS-2 y UTF-16 especifican la marca de orden de bytes (BOM) Unicode para su uso al comienzo de los archivos de texto, que se pueden utilizar para la detección de orden de bytes (o detección de endianidad de bytes ). La lista de materiales, punto de código U + FEFF, tiene la importante propiedad de no ambigüedad en el reordenamiento de bytes, independientemente de la codificación Unicode utilizada; U + FFFE (el resultado del intercambio de bytes U + FEFF) no equivale a un carácter legal, y U + FEFF en lugares distintos al comienzo del texto transmite el espacio sin interrupciones de ancho cero (un carácter sin apariencia y ningún efecto más que prevenir la formación de ligaduras ).
El mismo carácter convertido a UTF-8 se convierte en la secuencia de bytes EF BB BF
. El estándar Unicode permite que la lista de materiales "pueda servir como firma para texto codificado en UTF-8 donde el juego de caracteres no está marcado". [65] Algunos desarrolladores de software lo han adoptado para otras codificaciones, incluido UTF-8, en un intento de distinguir UTF-8 de las páginas de códigos locales de 8 bits . sin emabargo RFC 3629 , el estándar UTF-8, recomienda que las marcas de orden de bytes estén prohibidas en los protocolos que usan UTF-8, pero analiza los casos en los que esto puede no ser posible. Además, la gran restricción sobre posibles patrones en UTF-8 (por ejemplo, no puede haber bytes solitarios con el bit alto establecido) significa que debería ser posible distinguir UTF-8 de otras codificaciones de caracteres sin depender de la lista de materiales.
En UTF-32 y UCS-4, una unidad de código de 32 bits sirve como una representación bastante directa del punto de código de cualquier carácter (aunque el endianness, que varía en las diferentes plataformas, afecta la forma en que la unidad de código se manifiesta como una secuencia de bytes). En las otras codificaciones, cada punto de código puede estar representado por un número variable de unidades de código. UTF-32 se usa ampliamente como una representación interna de texto en programas (a diferencia del texto almacenado o transmitido), ya que cada sistema operativo Unix que usa los compiladores gcc para generar software lo usa como la codificación estándar de " caracteres anchos ". Algunos lenguajes de programación, como Seed7 , utilizan UTF-32 como representación interna de cadenas y caracteres. Las versiones recientes del lenguaje de programación Python (que comienzan con 2.2) también pueden configurarse para usar UTF-32 como la representación de cadenas Unicode, diseminando efectivamente dicha codificación en software codificado de alto nivel .
Punycode , otra forma de codificación, permite la codificación de cadenas Unicode en el conjunto de caracteres limitado admitido por el Sistema de nombres de dominio (DNS) basado en ASCII . La codificación se utiliza como parte de IDNA , que es un sistema que permite el uso de nombres de dominio internacionalizados en todos los scripts que son compatibles con Unicode. Las propuestas anteriores y ahora históricas incluyen UTF-5 y UTF-6 .
GB18030 es otra forma de codificación para Unicode, de la Administración de Normalización de China . Es el conjunto de caracteres oficial de la República Popular China (PRC). BOCU-1 y SCSU son esquemas de compresión Unicode. El RFC del Día de los Inocentes de 2005 especificó dos codificaciones UTF de parodia , UTF-9 y UTF-18 .
Adopción
Sistemas operativos
Unicode se ha convertido en el esquema dominante para el procesamiento interno y el almacenamiento de texto. Aunque una gran cantidad de texto todavía se almacena en codificaciones heredadas, Unicode se usa casi exclusivamente para construir nuevos sistemas de procesamiento de información. Los primeros usuarios tendieron a usar UCS-2 (el precursor de dos bytes de ancho fijo de UTF-16) y luego se trasladaron a UTF-16 (el estándar actual de ancho variable), ya que esta era la forma menos disruptiva de agregar soporte para no -Caracteres BMP. El sistema más conocido de este tipo es Windows NT (y sus descendientes, Windows 2000 , Windows XP , Windows Vista , Windows 7 , Windows 8 y Windows 10 ), que utiliza UTF-16 como única codificación de caracteres interna. Los entornos de código de bytes de Java y .NET , macOS y KDE también lo utilizan para la representación interna. Se puede instalar soporte parcial para Unicode en Windows 9x a través de Microsoft Layer para Unicode .
UTF-8 (desarrollado originalmente para Plan 9 ) [66] se ha convertido en la principal codificación de almacenamiento en la mayoría de los sistemas operativos similares a Unix (aunque algunas bibliotecas también usan otros) porque es un reemplazo relativamente fácil para los conjuntos de caracteres ASCII extendidos tradicionales . UTF-8 es también la codificación Unicode más común utilizada en documentos HTML en la World Wide Web .
Los motores de reproducción de texto multilingües que utilizan Unicode incluyen Uniscribe y DirectWrite para Microsoft Windows, ATSUI y Core Text para macOS, y Pango para GTK + y el escritorio GNOME .
Métodos de entrada
Debido a que los diseños de teclado no pueden tener combinaciones simples de teclas para todos los caracteres, varios sistemas operativos proporcionan métodos de entrada alternativos que permiten el acceso a todo el repertorio.
ISO / IEC 14755 , [67] que estandariza los métodos para ingresar caracteres Unicode a partir de sus puntos de código, especifica varios métodos. Existe el método básico , donde una secuencia inicial es seguida por la representación hexadecimal del punto de código y la secuencia final . También se especifica un método de entrada de selección de pantalla , donde los caracteres se enumeran en una tabla en una pantalla, como con un programa de mapa de caracteres.
Las herramientas en línea para encontrar el punto de código de un personaje conocido incluyen Búsqueda Unicode [68] de Jonathan Hedley y Shapecatcher [69] de Benjamin Milde. En la búsqueda Unicode, se ingresa una clave de búsqueda (por ejemplo, "fracciones") y se devuelve una lista de los caracteres correspondientes con sus puntos de código. En Shapecatcher, basado en el contexto de Shape , se dibuja el personaje en un cuadro y se devuelve una lista de personajes que se aproximan al dibujo, con sus puntos de código.
Correo electrónico
MIME define dos mecanismos diferentes para codificar caracteres no ASCII en el correo electrónico , dependiendo de si los caracteres están en los encabezados del correo electrónico (como el "Asunto:") o en el cuerpo del texto del mensaje; en ambos casos, se identifica el juego de caracteres original así como una codificación de transferencia. Para la transmisión de correo electrónico de Unicode, se recomienda el juego de caracteres UTF-8 y la codificación de transferencia imprimible entre comillas o Base64 , dependiendo de si gran parte del mensaje consta de caracteres ASCII . Los detalles de los dos mecanismos diferentes se especifican en los estándares MIME y generalmente están ocultos para los usuarios del software de correo electrónico.
La adopción de Unicode en el correo electrónico ha sido muy lenta. Parte del texto de Asia oriental todavía está codificado en codificaciones como ISO-2022 , y algunos dispositivos, como los teléfonos móviles, aún no pueden manejar correctamente los datos Unicode. Sin embargo, el apoyo ha ido mejorando. Muchos de los principales proveedores de correo gratuito como Yahoo , Google ( Gmail ) y Microsoft ( Outlook.com ) lo admiten.
Web
Todas las recomendaciones del W3C han utilizado Unicode como conjunto de caracteres de su documento desde HTML 4.0. Los navegadores web han admitido Unicode, especialmente UTF-8, durante muchos años. Solía haber problemas de visualización que resultaban principalmente de problemas relacionados con la fuente ; Por ejemplo, la versión 6 y anterior de Microsoft Internet Explorer no representaba muchos puntos de código a menos que se le dijera explícitamente que usaran una fuente que los contenga. [70]
Aunque las reglas de sintaxis pueden afectar el orden en que se permite que aparezcan los caracteres, los documentos XML (incluido XHTML ), por definición, [71] comprenden caracteres de la mayoría de los puntos de código Unicode, con la excepción de:
- la mayoría de los códigos de control C0 ,
- los puntos de código no asignados permanentemente D800 – DFFF,
- FFFE o FFFF.
Los caracteres HTML se manifiestan directamente como bytes de acuerdo con la codificación del documento, si la codificación los admite, o los usuarios pueden escribirlos como referencias de caracteres numéricos según el punto de código Unicode del carácter. Por ejemplo, las referencias Δ
, Й
, ק
, م
, ๗
, あ
, 叶
, 葉
, y 말
(o los mismos valores numéricos expresados en hexadecimal, con &#x
como el prefijo) debe aparecer en todos los navegadores como Δ, Й, ק, م, 7,あ,叶,葉y 말.
Al especificar URI , por ejemplo, como URL en solicitudes HTTP , los caracteres que no son ASCII deben estar codificados en porcentaje .
Fuentes
En principio, Unicode no se ocupa de las fuentes per se , considerándolas opciones de implementación. [72] Cualquier carácter puede tener muchos alógrafos , desde las formas de letra básica, negrita y cursiva más comunes hasta estilos decorativos complejos. Una fuente es "compatible con Unicode" si se puede acceder a los glifos de la fuente utilizando puntos de código definidos en el estándar Unicode. [73] El estándar no especifica un número mínimo de caracteres que deben incluirse en la fuente; algunas fuentes tienen un repertorio bastante reducido.
Las fuentes gratuitas y minoristas basadas en Unicode están ampliamente disponibles, ya que TrueType y OpenType admiten Unicode. Estos formatos de fuente asignan puntos de código Unicode a glifos, pero la fuente TrueType está restringida a 65.535 glifos.
Existen miles de fuentes en el mercado, pero menos de una docena de fuentes, a veces descritas como fuentes "pan-Unicode", intentan admitir la mayoría del repertorio de caracteres Unicode. En cambio, las fuentes basadas en Unicode generalmente se enfocan en admitir solo ASCII básico y scripts o conjuntos de caracteres o símbolos particulares. Varias razones justifican este enfoque: las aplicaciones y los documentos rara vez necesitan representar caracteres de más de uno o dos sistemas de escritura; las fuentes tienden a demandar recursos en entornos informáticos; y los sistemas operativos y aplicaciones muestran una inteligencia cada vez mayor con respecto a la obtención de información de glifos de archivos de fuentes separados según sea necesario, es decir, sustitución de fuentes . Además, diseñar un conjunto coherente de instrucciones de interpretación para decenas de miles de glifos constituye una tarea monumental; tal empresa pasa el punto de rendimientos decrecientes para la mayoría de los tipos de letra.
Newlines
Unicode soluciona parcialmente el problema de la nueva línea que se produce al intentar leer un archivo de texto en diferentes plataformas. Unicode define una gran cantidad de caracteres que las aplicaciones compatibles deben reconocer como terminadores de línea.
En términos de la nueva línea, Unicode introdujo SEPARADOR DE LÍNEA U + 2028 y SEPARADOR DE PÁRRAFOS U + 2029 . Este fue un intento de proporcionar una solución Unicode para codificar párrafos y líneas semánticamente, reemplazando potencialmente todas las diversas soluciones de plataforma. Al hacerlo, Unicode proporciona una forma de evitar las soluciones históricas dependientes de la plataforma. No obstante, pocas o ninguna solución Unicode han adoptado estos separadores de línea y párrafo Unicode como los únicos caracteres canónicos finales de línea. Sin embargo, un enfoque común para resolver este problema es mediante la normalización de nueva línea. Esto se logra con el sistema de texto Cocoa en Mac OS X y también con las recomendaciones W3C XML y HTML. En este enfoque, cada carácter de nueva línea posible se convierte internamente en una nueva línea común (lo que realmente no importa, ya que es una operación interna solo para renderizar). En otras palabras, el sistema de texto puede tratar correctamente el carácter como una nueva línea, independientemente de la codificación real de la entrada.
Asuntos
Críticas filosóficas y de integridad
La unificación han (la identificación de formas en las lenguas de Asia oriental que se pueden tratar como variaciones estilísticas del mismo carácter histórico) se ha convertido en uno de los aspectos más controvertidos de Unicode, a pesar de la presencia de una mayoría de expertos de las tres regiones en el Grupo de Investigación Ideográfica (IRG), que asesora al Consorcio e ISO en adiciones al repertorio y en la unificación Han. [74]
Unicode ha sido criticado por no codificar por separado formas antiguas y alternativas de kanji que, argumentan los críticos, complica el procesamiento de nombres japoneses antiguos y japoneses poco comunes. A menudo, esto se debe al hecho de que Unicode codifica caracteres en lugar de glifos (las representaciones visuales del carácter básico que a menudo varían de un idioma a otro). La unificación de glifos conduce a la percepción de que los lenguajes mismos, no solo la representación básica de los caracteres, se están fusionando. [75] [ aclaración necesaria ] Ha habido varios intentos de crear codificaciones alternativas que preserven las diferencias estilísticas entre los caracteres chinos, japoneses y coreanos en oposición a la política de Unicode de unificación Han. Un ejemplo de uno es TRON (aunque no se adopta ampliamente en Japón, hay algunos usuarios que necesitan manejar el texto japonés histórico y favorecerlo).
Aunque el repertorio de menos de 21.000 caracteres Han en la primera versión de Unicode se limitaba en gran medida a los caracteres de uso moderno común, Unicode ahora incluye más de 92.000 caracteres Han, y se sigue trabajando para agregar miles de caracteres históricos y dialectales más utilizados en China. Japón, Corea, Taiwán y Vietnam.
La tecnología de fuentes moderna proporciona un medio para abordar el problema práctico de la necesidad de representar un carácter Han unificado en términos de una colección de representaciones de glifos alternativos, en forma de secuencias de variación Unicode . Por ejemplo, las tablas tipográficas avanzadas de OpenType permiten seleccionar una de varias representaciones de glifos alternativas al realizar el proceso de mapeo de caracteres a glifos. En este caso, se puede proporcionar información en texto plano para designar qué forma de carácter alternativo seleccionar.

Si la diferencia en los glifos apropiados para dos caracteres en el mismo guión difiere solo en cursiva, Unicode generalmente los ha unificado, como se puede ver en la comparación entre los caracteres rusos (etiquetados estándar) y serbios a la derecha, lo que significa que las diferencias son se muestra a través de tecnología de fuentes inteligentes o fuentes cambiantes manualmente.
Asignación a conjuntos de caracteres heredados
Unicode fue diseñado para proporcionar conversión de formato de ida y vuelta código punto por código desde y hacia cualquier codificación de caracteres preexistente, de modo que los archivos de texto en conjuntos de caracteres más antiguos se puedan convertir a Unicode y luego volver y recuperar el mismo archivo, sin emplear una interpretación dependiente del contexto. Eso ha significado que las arquitecturas heredadas inconsistentes, como la combinación de diacríticos y caracteres precompuestos , existen en Unicode, lo que brinda más de un método para representar un texto. Esto es más pronunciado en las tres formas de codificación diferentes del Hangul coreano . Desde la versión 3.0, cualquier carácter precompuesto que pueda ser representado por una secuencia combinada de caracteres ya existentes ya no se puede agregar al estándar para preservar la interoperabilidad entre software que usa diferentes versiones de Unicode.
Se deben proporcionar asignaciones inyectables entre caracteres en conjuntos de caracteres heredados existentes y caracteres en Unicode para facilitar la conversión a Unicode y permitir la interoperabilidad con software heredado. La falta de coherencia en varias asignaciones entre codificaciones japonesas anteriores, como Shift-JIS o EUC-JP y Unicode, provocó desajustes de conversión de formato de ida y vuelta , en particular, la asignación del carácter JIS X 0208 '~' (1-33, WAVE DASH) , muy utilizado en datos de bases de datos heredadas, paraU + FF5E ~ TILDE DE ANCHO COMPLETO (en Microsoft Windows ) oU + 301C 〜 WAVE DASH (otros proveedores). [76]
Algunos programadores informáticos japoneses se opusieron a Unicode porque les obliga a separar el uso de U + 005C \ REVERSE SOLIDUS (barra invertida) yU + 00A5 ¥ YEN SIGN , que se asignó a 0x5C en JIS X 0201, y existe una gran cantidad de código heredado con este uso. [77] (Esta codificación también reemplaza tilde '~' 0x7E con macron '¯', ahora 0xAF.) La separación de estos caracteres existe en ISO 8859-1 , desde mucho antes de Unicode.
Guiones índicos
A los scripts índicos como Tamil y Devanagari se les asignan solo 128 puntos de código, que coinciden con el estándar ISCII . La representación correcta del texto índico Unicode requiere transformar los caracteres de orden lógico almacenados en orden visual y la formación de ligaduras (también conocidas como conjunciones) a partir de componentes. Algunos eruditos locales argumentaron a favor de la asignación de puntos de código Unicode a estas ligaduras, yendo en contra de la práctica de otros sistemas de escritura, aunque Unicode contiene algunas ligaduras árabes y otras con fines de compatibilidad con versiones anteriores. [78] [79] [80] La codificación de cualquier ligadura nueva en Unicode no sucederá, en parte porque el conjunto de ligaduras depende de la fuente y Unicode es una codificación independiente de las variaciones de fuente. El mismo tipo de problema surgió para la escritura tibetana en 2003 cuando la Administración de Normalización de China propuso codificar 956 sílabas tibetanas precompuestas, [81] pero el comité de ISO correspondiente rechazó su codificación ( ISO / IEC JTC 1 / SC 2 ). [82]
El soporte del alfabeto tailandés ha sido criticado por su ordenamiento de los caracteres tailandeses. Las vocales เ, แ, โ, ใ, ไ que se escriben a la izquierda de la consonante precedente están en orden visual en lugar de en orden fonético, a diferencia de las representaciones Unicode de otras escrituras índicas. Esta complicación se debe a que Unicode heredó el estándar industrial tailandés 620 , que funcionaba de la misma manera, y era la forma en que el tailandés siempre se había escrito en los teclados. Este problema de ordenamiento complica ligeramente el proceso de clasificación Unicode, lo que requiere búsquedas en la tabla para reordenar los caracteres tailandeses para la clasificación. [75] Incluso si Unicode hubiera adoptado la codificación de acuerdo con el orden hablado, aún sería problemático cotejar las palabras en el orden del diccionario. Por ejemplo, la palabra แสดง [sa dɛːŋ] "ejecutar" comienza con un grupo de consonantes "สด" (con una vocal inherente para la consonante "ส"), la vocal แ -, en el orden hablado vendría después de la ด, pero en un diccionario, la palabra es cotejado como está escrito, con la vocal después de ส.
Combinando personajes
Los caracteres con signos diacríticos generalmente se pueden representar como un solo carácter precompuesto o como una secuencia descompuesta de una letra base más una o más marcas sin espaciado. Por ejemplo, ḗ (precompuesto e con macron y agudo arriba) y ḗ (e seguido de la combinación de macron arriba y la combinación de aguda arriba) deben representarse de manera idéntica, apareciendo ambos como una e con macron y acento agudo , pero en la práctica, su la apariencia puede variar según el motor de renderizado y las fuentes que se utilicen para mostrar los caracteres. De manera similar, los puntos bajos , según sea necesario en la romanización del índico , a menudo se colocarán incorrectamente. [ cita requerida ] . Los caracteres Unicode que se asignan a glifos precompuestos se pueden usar en muchos casos, evitando así el problema, pero cuando no se ha codificado ningún carácter precompuesto, el problema a menudo se puede resolver utilizando una fuente Unicode especializada como Charis SIL que usa Graphite , OpenType o Tecnologías AAT para funciones de renderizado avanzadas.
Anomalías
El estándar Unicode ha impuesto reglas destinadas a garantizar la estabilidad. [83] Dependiendo del rigor de una norma, se puede prohibir o permitir un cambio. Por ejemplo, un "nombre" dado a un punto de código no puede cambiar y no cambiará. Pero una propiedad de "script" es más flexible, según las propias reglas de Unicode. En la versión 2.0, Unicode cambió muchos "nombres" de puntos de código desde la versión 1. En el mismo momento, Unicode declaró que a partir de ese momento, un nombre asignado a un punto de código nunca más cambiaría. Esto implica que cuando se publican errores, estos errores no se pueden corregir, incluso si son triviales (como sucedió en un caso con la ortografía BRAKCET para BRACKET en el nombre de un personaje). En 2006, se publicó por primera vez una lista de anomalías en los nombres de los personajes y, en abril de 2017, había 94 personajes con problemas identificados, [84] por ejemplo:
- U + 2118 ℘ SCRIPT CAPITAL P : Esta es una letra pequeña. La capital esU + 1D4AB 𝒫 GUIÓN MATEMÁTICA EN CAPITAL P [85]
- U + 034F ͏ COMBINING GRAPHEME JOINER : No une grafemas. [84]
- U + A015 ꀕ YI SYLLABLE WU : Esta no es una sílaba Yi, sino una marca de iteración Yi.
- U + FE18 ︘ FORMULARIO DE PRESENTACIÓN DEL FRENO LENTICULAR VERTICAL DERECHO BLANCO : el corchete está mal escrito. [86]
Los errores ortográficos se resuelven utilizando nombres de alias y abreviaturas Unicode .
Ver también
- Comparación de codificaciones Unicode
- Símbolos religiosos y políticos en Unicode
- Componentes internacionales para Unicode (ICU), ahora como ICU- TC una parte de Unicode
- Lista de códigos binarios
- Lista de caracteres Unicode
- Lista de referencias a entidades de caracteres XML y HTML
- Tipos de letra Unicode de código abierto
- Estándares relacionados con Unicode
- Símbolos Unicode
- Juego de caracteres codificados universales
- Lotus Multi-Byte Character Set (LMBCS), un desarrollo paralelo con intenciones similares
Notas
- ^ El Consorcio Unicode utiliza el término byte ambiguo; La Organización Internacional de Normalización (ISO), la Comisión Electrotécnica Internacional (IEC) y el Grupo de Trabajo de Ingeniería de Internet (IETF) utilizan el término octeto más específicoen los documentos actuales relacionados con Unicode.
Referencias
- ^ "El estándar Unicode: una introducción técnica" . Consultado el 16 de marzo de 2010 .
- ^ "Encuesta de uso de codificaciones de caracteres desglosadas por ranking" . w3techs.com . Consultado el 9 de junio de 2020 .
- ^ "Conformidad" (PDF) . El estándar Unicode . Marzo de 2020 . Consultado el 15 de marzo de 2020 .
- ^ "UAX # 29: Segmentación de texto Unicode §3 Límites de racimo de grafemas" . unicode.org . 2020-02-19 . Consultado el 27 de junio de 2020 .
- ^ "Unicode - una breve introducción (avanzada) • JavaScript para programadores impacientes" . explorejs.com . Consultado el 14 de junio de 2020 .
- ^ "Introducción a Unicode" . mathias.gaunard.com . Consultado el 14 de junio de 2020 .
- ^ "Cadenas y caracteres: el lenguaje de programación Swift (Swift 5.2)" . docs.swift.org . Consultado el 14 de junio de 2020 .
- ^ "Rompiendo nuestras suposiciones Latin-1 - en busca de la pereza" . manishearth.github.io . Consultado el 14 de junio de 2020 .
Unicode no quería lidiar con la adición de nuevas banderas cada vez que aparece un nuevo país o territorio. Tampoco quieren entrar en el negocio difícil de determinar lo que un país es , por ejemplo, cuando se trata de territorios en disputa. [..] En algunos sistemas chinos, por ejemplo, es posible que la bandera de Taiwán (not) no se muestre.
- ^ "Dejemos de atribuir significado a los puntos de código - en busca de la pereza" . manishearth.github.io . Consultado el 14 de junio de 2020 .
La gente empieza a dar a entender que los puntos de código significan algo, y que indexar o dividir O (1) en los límites de los puntos de código es una operación útil.
- ^ a b c d e Becker, Joseph D. (10 de septiembre de 1998) [29 de agosto de 1988]. "Unicode 88" (PDF) . unicode.org (edición de reimpresión del décimo aniversario). Consorcio Unicode . Archivado (PDF) desde el original el 25 de noviembre de 2016 . Consultado el 25 de octubre de 2016 .
En 1978, Bob Belleville en Xerox PARC hizo la propuesta inicial para un conjunto de "Señales universales" . Muchas personas contribuyeron con ideas al desarrollo de un nuevo diseño de codificación. A partir de 1980, estos esfuerzos evolucionaron hasta convertirse en el estándar de código de caracteres de Xerox (XCCS) del presente autor, una codificación multilingüe que Xerox ha mantenido como un estándar corporativo interno desde 1982, gracias a los esfuerzos de Ed Smura, Ron Pellar y otros. .
Unicode surgió como resultado de ocho años de experiencia laboral con XCCS. Sus diferencias fundamentales con XCCS fueron propuestas por Peter Fenwick y Dave Opstad (códigos puros de 16 bits) y por Lee Collins (unificación ideográfica de caracteres). Unicode conserva las muchas características de XCCS, cuya utilidad ha sido probada a lo largo de los años en una línea internacional de productos de sistemas de comunicación multilingües. - ^ "Narrativa resumida" . Consultado el 15 de marzo de 2010 .
- ^ Historia del lanzamiento de Unicode y fechas de publicación en unicode.org. Consultado el 28 de febrero de 2017.
- ^ Searle, Stephen J. "Unicode revisitado" . Consultado el 18 de enero de 2013 .
- ^ a b "Los miembros del consorcio Unicode" . Consultado el 4 de enero de 2019 .
- ^ "Gráficos de códigos de caracteres" . Consultado el 17 de marzo de 2010 .
- ^ "Preguntas frecuentes sobre Unicode" . Consultado el 2 de abril de 2020 .
- ^ "Hoja de ruta hacia las BMP" . Consorcio Unicode . Consultado el 30 de julio de 2018 .
- ^ "Acerca de la iniciativa de codificación de secuencias de comandos" . El Consorcio Unicode . Consultado el 4 de junio de 2012 .
- ^ "Unicode 6.1 Paperback disponible" . anuncios_at_unicode.org . Consultado el 30 de mayo de 2012 .
- ^ "Unicode 14.0.0" . www.unicode.org . Consultado el 10 de febrero de 2021 .
- ^ "Versiones enumeradas del estándar Unicode" . Consultado el 21 de junio de 2016 .
- ^ a b c
- "Unicode versión 1.0" . 1991.
- "1.0.0 / UnicodeData.txt (reconstruido)" . 2004 . Consultado el 16 de marzo de 2010 .
- ^ a b "Datos Unicode 1.0.1" . Consultado el 16 de marzo de 2010 .
- ^ a b
- "Unicode versión 1.1" .
- "Datos Unicode 1995" . Consultado el 16 de marzo de 2010 .
- ^ a b
- "Unicode versión 2.0.0" .
- "Datos Unicode-2.0.14" . Consultado el 16 de marzo de 2010 .
- ^ a b
- "Versión Unicode 2.1.0" .
- "Datos Unicode-2.1.2" . Consultado el 16 de marzo de 2010 .
- ^ "Datos Unicode-3.0.0" . Consultado el 16 de marzo de 2010 .
- ^ "Datos Unicode-3.1.0" . Consultado el 16 de marzo de 2010 .
- ^ "Datos Unicode-3.2.0" . Consultado el 16 de marzo de 2010 .
- ^ "Datos Unicode-4.0.0" . Consultado el 16 de marzo de 2010 .
- ^ "Datos Unicode-4.1.0" . Consultado el 16 de marzo de 2010 .
- ^ "Datos Unicode 5.0.0" . Consultado el 17 de marzo de 2010 .
- ^ "Datos Unicode 5.1.0" . Consultado el 17 de marzo de 2010 .
- ^ "Datos Unicode 5.2.0" . Consultado el 17 de marzo de 2010 .
- ^ "Datos Unicode 6.0.0" . Consultado el 11 de octubre de 2010 .
- ^ "Datos Unicode 6.1.0" . Consultado el 31 de enero de 2012 .
- ^ "Datos Unicode 6.2.0" . Consultado el 26 de septiembre de 2012 .
- ^ "Datos Unicode 6.3.0" . Consultado el 30 de septiembre de 2013 .
- ^ "Datos Unicode 7.0.0" . Consultado el 15 de junio de 2014 .
- ^ "Unicode 8.0.0" . Consorcio Unicode . Consultado el 17 de junio de 2015 .
- ^ "Datos Unicode 8.0.0" . Consultado el 17 de junio de 2015 .
- ^ "Unicode 9.0.0" . Consorcio Unicode . Consultado el 21 de junio de 2016 .
- ^ "Datos Unicode 9.0.0" . Consultado el 21 de junio de 2016 .
- ^ Lobao, Martim (7 de junio de 2016). "Estos son los dos emojis que no fueron aprobados para Unicode 9 pero que Google agregó a Android de todos modos" . Policía de Android . Consultado el 4 de septiembre de 2016 .
- ^ "Unicode 10.0.0" . Consorcio Unicode . Consultado el 20 de junio de 2017 .
- ^ "El estándar Unicode, versión 11.0.0 Apéndice C" (PDF) . Consorcio Unicode . Consultado el 11 de junio de 2018 .
- ^ "Anuncio del estándar Unicode, versión 11.0" . blog.unicode.org . Consultado el 6 de junio de 2018 .
- ^ "El estándar Unicode, versión 12.0.0 Apéndice C" (PDF) . Consorcio Unicode . Consultado el 5 de marzo de 2019 .
- ^ "Anuncio del estándar Unicode, versión 12.0" . blog.unicode.org . Consultado el 5 de marzo de 2019 .
- ^ "Versión Unicode 12.1 lanzada en apoyo de la Era Reiwa" . blog.unicode.org . Consultado el 7 de mayo de 2019 .
- ^ a b
- "Unicode 13.0.0" .
- "Anuncio del estándar Unicode, versión 13.0" . blog.unicode.org . Consultado el 11 de marzo de 2020 .
- ^ "El estándar Unicode, versión 13.0 - Especificación principal Apéndice C" (PDF) . Consorcio Unicode . Consultado el 11 de marzo de 2020 .
- ^ "Glosario de términos Unicode" . Consultado el 16 de marzo de 2010 .
- ^ "3.4 Caracteres y codificación". El estándar Unicode, versión 13.0 (PDF) . 2019. p. 19.
- ^ "2.4 Puntos de código y caracteres". El estándar Unicode versión 12.0 - Especificación principal (PDF) . 2019. p. 29.
- ^ "Apéndice A: Convenciones de notación" (PDF) . El estándar Unicode . Consorcio Unicode. Marzo de 2020.De conformidad con el punto relativo a Unicode en MOS: ALLCAPS , los nombres Unicode formales no se utilizan en este párrafo.
- ^ a b "Política de estabilidad de codificación de caracteres Unicode" . Consultado el 16 de marzo de 2010 .
- ^ "Propiedades" (PDF) . Consultado el 15 de marzo de 2020 .
- ^ "Modelo de codificación de caracteres Unicode" . Consultado el 16 de marzo de 2010 .
- ^ "Secuencias con nombre Unicode" . Consultado el 16 de marzo de 2010 .
- ^ "Alias de nombres Unicode" . Consultado el 16 de marzo de 2010 .
- ^ CWA 13873: 2000 - Subconjuntos europeos multilingües en el acuerdo de taller ISO / IEC 10646-1 CEN 13873
- ^ Fundamento del juego de caracteres europeos multilingüe 2 (MES-2) , Markus Kuhn , 1998
- ^ "UTF-8, UTF-16, UTF-32 y BOM" . Preguntas frecuentes sobre Unicode.org . Consultado el 12 de diciembre de 2016 .
- ^ El estándar Unicode, versión 6.2 . El Consorcio Unicode. 2013. p. 561. ISBN 978-1-936213-08-5.
- ^ Pike, Rob (30 de abril de 2003). "Historia UTF-8" .
- ^ "ISO / IEC JTC1 / SC 18 / WG 9 N" (PDF) . Consultado el 4 de junio de 2012 .
- ^ Hedley, Jonathan (2009). "Búsqueda Unicode" .
- ^ Milde, Benjamín (2011). "Reconocimiento de caracteres Unicode" .
- ^ Wood, Alan. "Configuración de Windows Internet Explorer 5, 5.5 y 6 para soporte multilingüe y Unicode" . Alan Wood . Consultado el 4 de junio de 2012 .
- ^ "Lenguaje de marcado extensible (XML) 1.1 (segunda edición)" . Consultado el 1 de noviembre de 2013 .
- ^ Bigelow, Charles; Holmes, Kris (septiembre de 1993). "El diseño de una fuente Unicode" (PDF) . Publicación electrónica . VOL. 6 (3), 289-305: 292.
|volume=
tiene texto extra ( ayuda ) - ^ "Fuentes y teclados" . Consorcio Unicode. 2017-06-28 . Consultado el 13 de octubre de 2019 .
- ^ Una breve historia de los códigos de caracteres , Steven J. Searle, escrito originalmente en 1999 , última actualización de 2004
- ^ a b La vida secreta de Unicode: Un vistazo a la parte más vulnerable de Unicode , Suzanne Topping, 1 de mayo de 2001 (Archivo de Internet)
- ^ Contribución de AFII sobre WAVE DASH , "Una tabla de caracteres específica del proveedor Unicode para japonés" . web.archive.org . 2011-04-22. Archivado desde el original el 22 de abril de 2011.
- ^ ISO 646- * Problema , Sección 4.4.3.5 de Introducción a I18n , Tomohiro KUBOTA, 2001
- ^ "Formularios de presentación en árabe-A" (PDF) . Consultado el 20 de marzo de 2010 .
- ^ "Formularios de presentación en árabe-B" (PDF) . Consultado el 20 de marzo de 2010 .
- ^ "Formularios de presentación alfabéticos" (PDF) . Consultado el 20 de marzo de 2010 .
- ^ China (2002-12-02). "Propuesta sobre codificación de caracteres tibetanos BrdaRten para ISO / IEC 10646 en BMP" (PDF) .
- ^ VS Umamaheswaran (7 de noviembre de 2003). "Resoluciones de la reunión 44 del GT 2" (PDF) . Resolución M44.20.
- ^ Política de estabilidad Unicode
- ^ a b "Nota técnica de Unicode # 27: anomalías conocidas en los nombres de caracteres Unicode" . unicode.org . 2017-04-10.
- ^ Gráfico Unicode: "en realidad, tiene la forma de una p caligráfica minúscula, a pesar de su nombre"
- ^ "La falta de ortografía de BRACKET en el nombre del personaje es un defecto conocido"
Otras lecturas
- El estándar Unicode, versión 3.0 , The Unicode Consortium, Addison-Wesley Longman, Inc., abril de 2000. ISBN 0-201-61633-5
- The Unicode Standard, versión 4.0 , The Unicode Consortium, Addison-Wesley Professional, 27 de agosto de 2003. ISBN 0-321-18578-1
- The Unicode Standard, versión 5.0, quinta edición , The Unicode Consortium , Addison-Wesley Professional, 27 de octubre de 2006. ISBN 0-321-48091-0
- Julie D. Allen. El estándar Unicode, versión 6.0 , el consorcio Unicode , Mountain View, 2011, ISBN 9781936213016 , ( [1] ).
- El manual completo de tipografía , James Felici, Adobe Press; 1a edición, 2002. ISBN 0-321-12730-7
- Unicode: A Primer , Tony Graham, libros M&T, 2000. ISBN 0-7645-4625-2 .
- Unicode desmitificado: una guía práctica del programador sobre el estándar de codificación , Richard Gillam, Addison-Wesley Professional; 1a edición, 2002. ISBN 0-201-70052-2
- Unicode explicado , Jukka K. Korpela, O'Reilly; 1a edición, 2006. ISBN 0-596-10121-X
- Yannis Haralambous; Martin Dürst (2019). "Unicode desde un punto de vista lingüístico". En Haralambous, Yannis (ed.). Proceedings of Graphemics in the 21st Century, Brest 2018 . Brest: Ediciones Fluxus. págs. 167-183. ISBN 978-2-9570549-1-6.
enlaces externos
- Página web oficial
· Sitio técnico oficial
- Unicode en Curlie
- Recursos Unicode de Alan Wood : contiene listas de procesadores de texto con capacidad Unicode; las fuentes y los caracteres se agrupan por tipo; los personajes se presentan en listas, no en cuadrículas.
- Fuente Unicode BMP Fallback : muestra el valor Unicode de cualquier carácter en un documento, incluso en el Área de uso privado, en lugar del glifo en sí.