Unicode (también conocido como el Estándar Unicode y TUS [ 1 ] [ 2 ] ) es un estándar de codificación de caracteres mantenido por el Consorcio Unicode diseñado para admitir el uso de texto en todos los sistemas de escritura del mundo que se pueden digitalizar. La versión 17.0 [ A ] define 159 801 caracteres y 172 escrituras [ 3 ] utilizados en diversos contextos ordinarios, literarios, académicos y técnicos.
Unicode ha reemplazado en gran medida el entorno anterior de innumerables conjuntos de caracteres incompatibles utilizados en diferentes regiones y arquitecturas informáticas. Todo el repertorio de estos conjuntos, además de muchos caracteres adicionales, se fusionó en un único conjunto Unicode. Unicode se utiliza para codificar la gran mayoría del texto en Internet, incluyendo la mayoría de las páginas web , y la compatibilidad con Unicode se ha convertido en una consideración común en el desarrollo de software actual. Unicode es capaz de codificar más de 1,1 millones de caracteres.
El repertorio de caracteres Unicode está sincronizado con la norma ISO/IEC 10646 , siendo ambos códigos idénticos entre sí. Sin embargo, el estándar Unicode es más que un simple repertorio de caracteres. Para ayudar a desarrolladores y diseñadores, el estándar también proporciona tablas y datos de referencia, así como anexos que explican conceptos relevantes para diversos sistemas de escritura, ofreciendo orientación para su implementación. Entre los temas que abarcan estos anexos se incluyen la normalización de caracteres , la composición y descomposición de caracteres , la intercalación y la direccionalidad . [ 4 ]
Unicode codifica 3790 emojis , cuyo desarrollo continuo es llevado a cabo por el Consorcio como parte del estándar. [ 5 ] La adopción generalizada de Unicode fue en gran parte responsable de la popularización inicial de los emojis fuera de Japón.
El texto Unicode se procesa y almacena como datos binarios utilizando una de varias codificaciones , que definen cómo traducir los códigos abstractos del estándar para caracteres en secuencias de bytes. El propio estándar Unicode define tres codificaciones: UTF-8 , UTF -16 y UTF-32 , aunque existen varias más . UTF-8 es la más utilizada por un amplio margen, en parte debido a su retrocompatibilidad con ASCII .
Origen y desarrollo
Unicode se diseñó originalmente con la intención de superar las limitaciones de todas las codificaciones de texto existentes hasta ese momento: cada codificación se utilizaba en su propio contexto, sin esperar compatibilidad con ninguna otra. De hecho, a menudo, dos codificaciones resultaban totalmente incompatibles entre sí, ya que el texto codificado en una se interpretaba como caracteres ilegibles en la otra. La mayoría de las codificaciones solo se habían diseñado para facilitar la interoperabilidad entre un número limitado de escrituras —generalmente entre una escritura determinada y caracteres latinos— , no entre un gran número de escrituras, y no con un tratamiento coherente para todas las escrituras compatibles.
La filosofía que sustenta Unicode busca codificar los caracteres subyacentes —grafemas y unidades similares a grafemas— en lugar de las distinciones gráficas consideradas meras variantes de glifos , que se manejan mejor mediante la tipografía , el uso de marcado u otros medios. En casos particularmente complejos, como el tratamiento de las variantes ortográficas en los caracteres Han , existe un desacuerdo considerable sobre qué diferencias justifican su propia codificación y cuáles son solo variantes gráficas de otros caracteres.
En su nivel más abstracto, Unicode asigna un número único, denominado punto de código, a cada carácter. Muchos aspectos de la representación visual —como el tamaño, la forma y el estilo— quedan a discreción del software que procesa el texto, como un navegador web o un procesador de textos . Sin embargo, en parte con el objetivo de fomentar una rápida adopción, la simplicidad de este modelo original se ha vuelto algo más compleja con el tiempo, y se han realizado diversas concesiones pragmáticas a lo largo del desarrollo del estándar.
Los primeros 256 puntos de código reflejan el estándar ISO/IEC 8859-1 , con el objetivo de simplificar la conversión de texto ya escrito en alfabetos de Europa Occidental. Para preservar las distinciones de las diferentes codificaciones heredadas, permitiendo así la conversión entre ellas y Unicode sin pérdida de información, a muchos caracteres casi idénticos entre sí , tanto en apariencia como en función prevista, se les asignaron puntos de código distintos. Por ejemplo, el bloque de Formas de Ancho Medio y Ancho Completo abarca una réplica semántica completa del alfabeto latino, ya que las codificaciones CJK heredadas contenían caracteres de "ancho completo" (que coincidían con el ancho de los caracteres CJK) y de "ancho medio" (que coincidían con el alfabeto latino común).
Historia
Los orígenes de Unicode se remontan a la década de 1980, a un grupo de personas vinculadas al Estándar de Código de Caracteres (XCCS) de Xerox . [ 6 ] En 1987, Joe Becker , empleado de Xerox , junto con Lee Collins y Mark Davis , empleados de Apple , comenzaron a investigar la viabilidad de crear un conjunto de caracteres universal. [ 7 ] Con aportaciones adicionales de Peter Fenwick y Dave Opstad , [ 6 ] Becker publicó en agosto de 1988 un borrador de propuesta para un «sistema internacional/multilingüe de codificación de caracteres de texto, denominado provisionalmente Unicode». Explicó que «el nombre "Unicode" pretende sugerir una codificación única, unificada y universal». [ 6 ]
En este documento, titulado Unicode 88 , Becker describió un esquema que utiliza caracteres de 16 bits : [ 6 ]
Unicode se diseñó para satisfacer la necesidad de una codificación de texto mundial práctica y fiable. Unicode podría describirse, a grandes rasgos, como un sistema ASCII de amplio espectro , ampliado a 16 bits para abarcar los caracteres de todos los idiomas vivos del mundo. En un diseño adecuado, 16 bits por carácter son más que suficientes para este propósito.
Esta decisión de diseño se tomó sobre la base de que solo los alfabetos y caracteres de uso "moderno" requerirían codificación: [ 6 ]
Unicode prioriza la utilidad futura por encima de la conservación de caracteres antiguos. Su objetivo principal son los caracteres publicados en textos modernos (por ejemplo, en la unión de todos los periódicos y revistas impresos en el mundo en 1988), cuyo número es indudablemente muy inferior a 2¹⁴ = 16 384. Más allá de estos caracteres de uso moderno, todos los demás pueden considerarse obsoletos o poco comunes; estos son mejores candidatos para el registro de uso privado que para saturar la lista pública de caracteres Unicode de uso general.
A principios de 1989, el grupo de trabajo de Unicode se amplió para incluir a Ken Whistler y Mike Kernaghan de Metaphor, Karen Smith-Yoshimura y Joan Aliprand de Research Libraries Group , y Glenn Wright de Sun Microsystems . Research Libraries Group tenía una solución existente para conjuntos de caracteres de Asia Oriental, que se convirtió en una de las entradas para el conjunto de caracteres Unicode. [ 7 ] En 1990, Michel Suignard y Asmus Freytag de Microsoft y Rick McGowan de NeXT también se unieron al grupo. Para finales de 1990, la mayor parte del trabajo de reasignación de los estándares existentes se había completado, y un borrador final de revisión de Unicode estaba listo.
El Consorcio Unicode se constituyó en California el 3 de enero de 1991, [ 8 ] y el primer volumen del Estándar Unicode se publicó en octubre de ese mismo año. El segundo volumen, que ahora incluía los ideogramas Han, se publicó en junio de 1992.
En 1996, se implementó un mecanismo de caracteres sustitutos en Unicode 2.0, por lo que Unicode dejó de estar restringido a 16 bits. Esto aumentó el espacio de códigos Unicode a más de un millón de puntos de código, lo que permitió la codificación de muchos sistemas de escritura históricos, como los jeroglíficos egipcios , y miles de caracteres poco utilizados u obsoletos que no se habían previsto para su inclusión en el estándar. Entre estos caracteres se encuentran varios caracteres CJK poco utilizados , muchos de los cuales se emplean principalmente en nombres propios, lo que los hace mucho más necesarios para una codificación universal de lo que preveía la arquitectura Unicode original. [ 9 ]
Consorcio Unicode
El Consorcio Unicode es una organización sin fines de lucro que coordina el desarrollo de Unicode. Entre sus miembros de pleno derecho se encuentran la mayoría de las principales empresas de software y hardware (y algunas otras) con interés en los estándares de procesamiento de texto, como Adobe , Apple , Google , IBM , Meta (anteriormente Facebook), Microsoft , Netflix y SAP . [ 10 ]
A lo largo de los años, varios países u organismos gubernamentales han sido miembros del Consorcio Unicode. [ 10 ]
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 .
El premio Unicode Bulldog se otorga a personas consideradas influyentes en el desarrollo de Unicode, entre cuyos galardonados se encuentran Tatsuo Kobayashi , Thomas Milo, Roozbeh Pournader, Ken Lunde y Michael Everson . [ 11 ]
Guiones cubiertos

A partir de septiembre de 2025Un total de 172 [ 12 ] sistemas de escritura ( alfabetos , abugidas y silabarios ) están incluidos en Unicode, cubriendo la mayoría de los principales sistemas de escritura en uso hoy en día. [ 13 ] [ 14 ] Todavía hay sistemas de escritura que no están codificados, particularmente aquellos utilizados principalmente en contextos históricos, litúrgicos y académicos. También se producen nuevas adiciones de caracteres a los sistemas de escritura ya codificados, así como símbolos , en particular para matemáticas y música .
Propuestas para añadir scripts
El Comité de la Hoja de Ruta de Unicode ( Michael Everson , Rick McGowan, Ken Whistler, VS Umamaheswaran) [ 15 ] mantiene la lista de escrituras que son candidatas o candidatas potenciales para la codificación y sus asignaciones tentativas de bloques de código en la página de la Hoja de Ruta de Unicode [ 16 ] del sitio web del Consorcio Unicode . Para algunas escrituras en la Hoja de Ruta, como la escritura grande Jurchen y Khitan , se han hecho propuestas de codificación y están en proceso de aprobación. Para otras escrituras, como Numidian y Rongorongo , aún no se ha hecho ninguna propuesta y están a la espera de un acuerdo sobre el repertorio de caracteres y otros detalles de las comunidades de usuarios involucradas.
Algunos sistemas de escritura modernos inventados que aún no se han incluido en Unicode (por ejemplo, Tengwar ) o que no cumplen los requisitos para su inclusión en Unicode debido a la falta de uso en el mundo real (por ejemplo, Klingon ) figuran en el Registro Unicode de ConScript , junto con asignaciones de códigos de área de uso privado no oficiales pero ampliamente utilizadas.
También existe una iniciativa de fuentes Unicode medievales centrada en caracteres latinos medievales especiales. Parte de estas propuestas ya se han incluido en Unicode.
La Iniciativa de Codificación de Escrituras (SEI), [ 17 ] un proyecto creado por Deborah Anderson en la Universidad de California, Berkeley , se fundó en 2002 con el objetivo de financiar propuestas para escrituras que aún no se habían codificado en el estándar. Actualmente dirigida por Anushah Hossain, SEI se ha convertido en una importante fuente de propuestas de adición al estándar en los últimos años. [ 18 ] Aunque SEI colabora con el Consorcio Unicode y el proceso de estándares ISO/IEC 10646, opera de forma independiente, brindando apoyo a la investigación técnica, lingüística e histórica necesaria para preparar propuestas formales. SEI mantiene una base de datos de escrituras que aún no se han codificado en el Estándar Unicode en el sitio web del proyecto. [ 19 ]
Versiones
El Consorcio Unicode, junto con la ISO, ha desarrollado un repertorio común tras la publicación inicial del Estándar Unicode : Unicode y el Conjunto Universal de Caracteres Codificados (UCS) de la ISO utilizan nombres de caracteres y puntos de código idénticos. Sin embargo, las versiones Unicode difieren de sus equivalentes ISO en dos aspectos importantes.
Si bien el 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, abarcando temas en profundidad como la codificación bit a bit, la intercalación y la representación. También proporciona un catálogo completo de propiedades de caracteres, incluidas las necesarias para admitir texto bidireccional , así como diagramas visuales y conjuntos de datos de referencia para ayudar a los implementadores. Anteriormente, el Estándar Unicode se vendía como un volumen impreso que contenía la especificación principal completa, los anexos del estándar, [ nota 1 ] y los diagramas de código. Sin embargo, la versión 5.0, publicada 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 un libro de bolsillo impreso bajo demanda. [ 20 ] El texto completo, por otro lado, se publica como un PDF gratuito en el sitio web de Unicode.
Una razón práctica para este método de publicación pone de manifiesto la segunda diferencia significativa entre el UCS y Unicode: la frecuencia con la que se publican versiones actualizadas y se añaden nuevos caracteres. El estándar Unicode ha publicado regularmente versiones ampliadas anuales, en ocasiones con más de una versión en un mismo año natural y, en raras ocasiones, con retrasos en la publicación prevista. Por ejemplo, en abril de 2020, un mes después de la publicación de la versión 13.0, el Consorcio Unicode anunció que había modificado la fecha de lanzamiento prevista para la versión 14.0, posponiéndola seis meses, hasta septiembre de 2021, debido a la pandemia de COVID-19 .
Hasta la fecha, se han publicado las siguientes versiones del Estándar Unicode . Las versiones de actualización, que no incluyen cambios 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 ]
- ↑ Gran parte de la documentación de Windows utiliza incorrectamente el término "Unicode" para referirse únicamente a la codificación UTF-16.
- ↑ El número total de caracteres gráficos y de formato, excluyendo los caracteres de uso privado , los caracteres de control , los caracteres que no son caracteres y los puntos de código sustitutos ).
- ↑
- 2.0 añadió las enmiendas 5, 6 y 7.
- 2.1 Se añadieron dos caracteres de la Enmienda 18.
- ↑ 3.2 Se agregó la Enmienda 1.
- ↑
- 4.1 Enmienda 1 añadida
- La versión 5.0 añadió la Enmienda 2, así como cuatro caracteres de la Enmienda 3.
- 5.1 Se agregó la Enmienda 4
- 5.2 Se añadieron las enmiendas 5 y 6.
- ↑ Además del símbolo de la rupia india
- ↑
- 6.2 añadió el símbolo de la lira turca
- 6.3 añadió cinco caracteres adicionales
- La versión 7.0 añadió las enmiendas 1 y 2, así como el símbolo del rublo.
- ↑ Además de la Enmienda 1, así como el signo Lari , nueve ideogramas unificados CJK y 41 emojis; [ 44 ] 9.0 agregó la Enmienda 2, así como Adlam, Newa, símbolos de la televisión japonesa y 74 emojis y símbolos. [ 45 ]
- ↑
- Además, 56 emojis, 285 personajes hentaigana y 3 personajes de Zanabazar Square.
- La versión 11.0 añadió 46 letras mayúsculas georgianas Mtavruli, 5 ideogramas unificados CJK y 66 emojis.
- La versión 12.0 añadió 62 caracteres adicionales.
Arquitectura y terminología
Espacio de código y puntos de código
El estándar Unicode define un espacio de códigos : [ 59 ] una secuencia de enteros llamados puntos de código [ 60 ] en el rango de 0 a1 114 111 , notado según el estándar como U+0000 – U+10FFFF . [ 61 ] El espacio de códigos es una representación sistemática e independiente de la arquitectura del estándar Unicode ; el texto real se procesa como datos binarios a través de una de varias codificaciones Unicode, como UTF-8 .
En esta notación normativa, el prefijo de dos caracteres U+siempre precede a un punto de código escrito, y los puntos de código en sí se escriben como números hexadecimales . [ nota 2 ] Siempre se escriben al menos cuatro dígitos hexadecimales, con ceros iniciales añadidos según sea necesario. Por ejemplo, el punto de código U+00F7 ÷ SIGNO DE DIVISIÓN se rellena con dos ceros iniciales, pero U+13254 𓉔 JEROGLIFO EGIPCIO O004 ( ) no se rellena. [ 63 ]![]()
Hay un total de1 112 064 puntos de código válidos dentro del espacio de códigos. [ 64 ] Este número surge de las limitaciones de la codificación de caracteres UTF-16 , que puede codificar los 2 16 puntos de código en el rango U+0000 a U+FFFF excepto los 2 11 puntos de código en el rango U+D800 a U+DFFF , que se utilizan como pares sustitutos para codificar los 2 20 puntos de código en el rango U+10000 a U+10FFFF .
Planos y bloques de código
El espacio de códigos Unicode se divide en 17 planos , numerados del 0 al 16. El plano 0 es el Plano Multilingüe Básico (BMP) y contiene los caracteres más utilizados. Todos los puntos de código en el BMP se acceden como una sola unidad de código en la codificación UTF-16 y se pueden codificar en uno, dos o tres bytes en UTF-8. Los puntos de código en los planos del 1 al 16 (los planos suplementarios ) se acceden como pares subrogados en UTF-16 y se codifican en cuatro bytes en UTF-8 .
Dentro de cada plano, los caracteres se distribuyen en bloques con nombre que contienen caracteres relacionados. El tamaño de un bloque siempre es un múltiplo de 16, y a menudo un múltiplo de 128, pero por lo demás es arbitrario. Los caracteres necesarios para un sistema de escritura determinado pueden estar repartidos en varios bloques diferentes, potencialmente disjuntos, dentro del espacio de código.
Propiedad de categoría general
A cada punto de código se le asigna una clasificación, que se indica como su propiedad de Categoría General . En el nivel superior, los puntos de código se clasifican como Letra, Marca, Número, Puntuación, Símbolo, Separador u Otro. Dentro de cada categoría, cada punto de código se subcategoriza. En la mayoría de los casos, se deben utilizar otras propiedades para describir adecuadamente todas las características de un punto de código determinado.
El1024 puntos en el rango U+D800 – U+DBFF se conocen como puntos de código sustitutos altos , y puntos de código en el rango U+DC00 – U+DFFF (Los puntos de código U+FFFF ( 1024 puntos de código) se conocen como puntos de código subrogados bajos . Un punto de código subrogado alto seguido de un punto de código subrogado bajo forma un par subrogado en UTF-16 para representar puntos de código mayores que U+FFFF . En principio, estos puntos de código no se pueden usar de otra manera, aunque en la práctica esta regla suele ignorarse, especialmente cuando no se usa UTF-16.
Se garantiza que un pequeño conjunto de puntos de código nunca se asignará a caracteres, aunque terceros pueden hacer uso independiente de ellos a su discreción. Hay 66 de estos no caracteres : U+FDD0 – U+FDEF y los dos últimos puntos de código en cada uno de los 17 planos (por ejemplo, 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. [ 65 ] Al igual que con los sustitutos, la regla de que estos no se pueden usar a menudo se ignora, aunque el funcionamiento de la marca de orden de bytes asume que U+FFFE nunca será el primer punto de código en un texto. La exclusión de sustitutos y no caracteres deja1 111 998 puntos de código disponibles para su uso.
Los puntos de código de uso privado se consideran asignados, pero intencionalmente no tienen una interpretación especificada por el Estándar Unicode [ 66 ], de modo que cualquier intercambio de dichos puntos de código requiere un acuerdo independiente entre el emisor y el receptor en cuanto a su interpretación. Hay tres áreas de uso privado en el espacio de códigos Unicode:
- Zona de uso privado: U+E000 – U+F8FF (6400 caracteres),
- Área de uso privado suplementaria-A: U+F0000 – U+FFFFD (65 534 caracteres),
- Área de uso privado suplementaria-B: U+100000 – U+10FFFD (65 534 caracteres).
Los caracteres gráficos son aquellos definidos por el estándar Unicode para tener una semántica particular, ya sea que tengan una forma de glifo visible o representen un espacio visible. A partir de Unicode 17.0, hay159 629 caracteres gráficos.
Los caracteres de formato son aquellos que no tienen una apariencia visible, pero que pueden afectar la apariencia o el comportamiento de los caracteres adyacentes. Por ejemplo, U+200C ZERO WIDTH NON-JOINER y U+200D ZERO WIDTH JOINER se pueden usar para cambiar el comportamiento de forma predeterminado de los caracteres adyacentes (por ejemplo, para inhibir las ligaduras o solicitar su formación). Unicode 17.0 incluye 172 caracteres de formato.
Se reservan 65 puntos de código, los rangos U+0000 – U+001F y U+007F – U+009F , como códigos de control , correspondientes 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 que emplean Unicode. En un fenómeno conocido como mojibake , los puntos de código C1 se decodifican incorrectamente según la página de códigos Windows-1252 , que antes se utilizaba ampliamente en contextos de Europa Occidental.
En conjunto, los caracteres gráficos, de formato, de código de control y de uso privado se denominan colectivamente caracteres asignados . Los puntos de código reservados son aquellos puntos de código que son válidos y están disponibles para su uso, pero que aún no se han asignado. A partir de Unicode 17.0, existen814 664 puntos de código reservados.
Caracteres abstractos
El conjunto de caracteres gráficos y de formato definidos por Unicode no se corresponde directamente con el repertorio de caracteres abstractos representables en Unicode. Unicode codifica caracteres asociando un carácter abstracto con un punto de código específico. [ 67 ] Sin embargo, no todos los caracteres abstractos se codifican como un único carácter Unicode, y algunos pueden representarse en Unicode mediante una secuencia de dos o más caracteres. Por ejemplo, la letra minúscula latina "i" con un ogonek , un punto encima y un acento agudo , que es necesaria en lituano , se representa mediante la secuencia de caracteres U+012F ; U+0307 ; U+0301 . Unicode mantiene una lista de secuencias de caracteres con nombres únicos para los caracteres abstractos que no se codifican directamente en Unicode. [ 68 ]
Todos los caracteres asignados tienen un nombre único e inmutable mediante el cual se identifican. Esta inmutabilidad se ha garantizado desde la versión 2.0 del Estándar Unicode mediante su política de Estabilidad de Nombres. [ 65 ] En los casos en que un nombre sea gravemente defectuoso y engañoso, o tenga un error tipográfico grave, se puede definir un alias formal que se recomienda que las aplicaciones utilicen en lugar del nombre oficial del carácter. Por ejemplo, U+A015 ꀕ YI SYLLABLE WU tiene el alias formal YI SYLLABLE ITERATION MARK , y U+FE18 ︘ PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET ( sic ) tiene el alias formal PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRA CK ET . [ 69 ]
Personajes precompuestos frente a compuestos
Unicode incluye un mecanismo para modificar caracteres que amplía enormemente el repertorio de glifos compatibles. Esto abarca el uso de signos diacríticos combinables que el usuario puede añadir después del carácter base. Se pueden aplicar varios signos diacríticos combinables simultáneamente al mismo carácter. Unicode también contiene versiones precompuestas de la mayoría de las combinaciones de letras y signos diacríticos de uso común. Estas simplifican la conversión desde y hacia codificaciones antiguas y permiten que las aplicaciones utilicen Unicode como formato de texto interno sin tener que implementar caracteres combinables. Por ejemplo, ése puede representar en Unicode como U+0065 e LETRA MINÚSCULA LATINA E seguida de U+0301 ◌ ́ ACENTO AGUDO COMBINABLE , y de forma equivalente como el carácter precompuesto U+00E9 é LETRA MINÚSCULA LATINA E CON ACENTO AGUDO . Por lo tanto, los usuarios suelen tener varias formas equivalentes de codificar el mismo carácter. El mecanismo de equivalencia canónica dentro del estándar Unicode garantiza la intercambiabilidad práctica de estas codificaciones equivalentes.
Un ejemplo de esto surge con el alfabeto coreano Hangul : Unicode proporciona un mecanismo para componer sílabas Hangul a partir de sus subcomponentes individuales Hangul Jamo . Sin embargo, también proporciona11 172 combinaciones de sílabas precompuestas hechas a partir del jamo más común.
Actualmente, los caracteres CJK solo tienen códigos para radicales no componibles y formas precompuestas. La mayoría de los caracteres Han se han compuesto intencionalmente a partir de elementos ortográficos más simples llamados radicales , o se han reconstruido como composiciones de estos. Por lo tanto, en principio, Unicode podría haber permitido su composición, como lo hizo con el Hangul. Si bien esto podría haber reducido considerablemente la cantidad de puntos de código necesarios, además de permitir la síntesis algorítmica de muchos caracteres nuevos arbitrarios, la complejidad de las etimologías de los caracteres y la naturaleza a posteriori de los sistemas de radicales añaden una enorme complejidad a la propuesta. De hecho, los intentos de diseñar codificaciones CJK basadas en la composición de radicales se han topado con dificultades derivadas de la realidad de que los caracteres chinos no se descomponen de forma tan simple ni tan regular como el Hangul.
El bloque Suplemento de radicales CJK se asigna al rango U+2E80 – U+2EFF , y los radicales Kangxi se asignan a U+2F00 – U+2FDF . El bloque Secuencias de descripción ideográfica cubre el rango U+2FF0 – U+2FFB , pero el estándar Unicode advierte contra el uso de sus caracteres como representación alternativa para caracteres codificados en otros lugares:
Este proceso es diferente de la codificación formal de un ideograma. No existe una descripción canónica de los ideogramas no codificados; no se asigna ninguna semántica a los ideogramas descritos; no se define ninguna equivalencia para los ideogramas descritos. Conceptualmente, las descripciones ideográficas se asemejan más a la frase en inglés "una 'e' con acento agudo" que a la secuencia de caracteres < U+0065, U+0301 > .
Ligaduras
Muchos sistemas de escritura, incluidos el árabe y el devanagari , tienen reglas ortográficas especiales que requieren que ciertas combinaciones de formas de letras se combinen para formar ligaduras especiales . Las reglas que rigen la formación de ligaduras pueden ser bastante complejas, lo que requiere tecnologías especiales de modelado de escritura como ACE (Arabic Calligraphic Engine de DecoType en la década de 1980, 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 fuentes también incluyen instrucciones para indicar al sistema operativo cómo generar correctamente diferentes secuencias de caracteres. Una solución sencilla para la colocación de marcas de combinación o diacríticos consiste en asignarles un ancho de cero y situar el glifo a la izquierda o a la derecha del lado izquierdo (según la dirección del alfabeto con el que se vayan a utilizar). Una marca manejada de esta forma aparecerá sobre el carácter que la precede, pero no ajustará su posición con respecto al ancho o alto del glifo base; puede resultar visualmente poco estético y superponerse a algunos glifos. El apilamiento real es imposible, pero se puede aproximar en casos limitados (por ejemplo, las vocales de combinación superior y las marcas de tono tailandesas pueden simplemente tener diferentes alturas inicialmente). Generalmente, este enfoque solo es efectivo en fuentes monoespaciadas, pero puede utilizarse como método de renderizado alternativo cuando fallan métodos más complejos.
subconjuntos estandarizados
Se estandarizan varios subconjuntos de Unicode: Microsoft Windows, desde Windows NT 4.0, admite WGL-4 con 657 caracteres, que se considera compatible con todos los idiomas europeos contemporáneos que utilizan los alfabetos latino, griego o cirílico. Otros subconjuntos estandarizados de Unicode incluyen los subconjuntos europeos multilingües: [ 71 ] MES-1 (solo alfabetos latinos; 335 caracteres), MES-2 (latín, griego y cirílico; 1062 caracteres) [ 72 ] y MES-3A y MES-3B (dos subconjuntos más grandes, no mostrados aquí). MES-2 incluye todos los caracteres de MES-1 y WGL-4.
La norma DIN 91379 [ 73 ] especifica un subconjunto de letras Unicode, caracteres especiales y secuencias de letras y signos diacríticos para permitir la representación correcta de nombres y simplificar el intercambio de datos en Europa. Esta norma es compatible con todos los idiomas oficiales de los países de la Unión Europea, así como con las lenguas minoritarias alemanas y los idiomas oficiales de Islandia, Liechtenstein, Noruega y Suiza. Para permitir la transliteración de nombres en otros sistemas de escritura al alfabeto latino según las normas ISO pertinentes, se proporcionan todas las combinaciones necesarias de letras base y signos diacríticos.
El software de renderizado que no puede procesar correctamente un carácter Unicode suele mostrarlo como un rectángulo abierto o como U+FFFD para indicar la posición del carácter no reconocido. Algunos sistemas han intentado proporcionar más información sobre dichos caracteres. La fuente Last Resort de Apple muestra un glifo sustituto que indica el rango Unicode del carácter, y la fuente alternativa de SIL International muestra un recuadro con 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 mapeo: las codificaciones del Formato de Transformación Unicode (UTF) y las codificaciones del Conjunto de Caracteres Codificados Universales (UCS). Una codificación mapea (posiblemente un subconjunto de) el rango de puntos de código Unicode a secuencias de valores en un rango de tamaño fijo, denominadas unidades de código . Todas las codificaciones UTF mapean puntos de código a una secuencia única de bytes. [ 74 ] Los números en los nombres de las codificaciones indican el número de bits por unidad de código (para las codificaciones UTF) o el número de bytes por unidad de código (para las 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-8 , que utiliza de una a cuatro unidades de 8 bits por punto de código , [ nota 3 ] y tiene máxima compatibilidad con ASCII
- UTF-16 , que utiliza una unidad de 16 bits por punto de código por debajo de U+010000 , y un par sustituto de dos unidades de 16 bits por punto de código en el rango de U+010000 a U+10FFFF.
- UTF-32 , que utiliza una unidad de 32 bits por punto de código.
- UTF-EBCDIC , no especificado como parte del estándar Unicode , que utiliza de una a cinco unidades de 8 bits por punto de código, destinado a maximizar la compatibilidad con EBCDIC.
UTF-8 utiliza de una a cuatro unidades de 8 bits ( bytes ) por punto de código y, al ser compacto para alfabetos latinos y compatible con ASCII, proporciona la codificación estándar de facto para el intercambio de texto Unicode. FreeBSD y la mayoría de las distribuciones Linux recientes lo utilizan como reemplazo directo de las codificaciones antiguas en el manejo general de texto.
Las codificaciones UCS-2 y UTF-16 especifican la marca de orden de bytes (BOM) de Unicode para su uso al inicio de los archivos de texto, que puede utilizarse para la detección del orden de bytes (o detección del orden de bytes ). La BOM, codificada como U+FEFF ZERO WIDTH NO-BREAK SPACE , tiene la importante propiedad de no ambigüedad en la reordenación 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 válido, y U+FEFF en lugares distintos al inicio del texto transmite el espacio de no separación de ancho cero.
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 BOM "puede servir como firma para texto codificado en UTF-8 donde el conjunto de caracteres no está marcado". [ 75 ] Algunos desarrolladores de software la han adoptado para otras codificaciones, incluida UTF-8, en un intento de distinguir UTF-8 de las páginas de códigos locales de 8 bits . Sin embargo, 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 en los patrones posibles en UTF-8 (por ejemplo, no puede haber bytes solitarios con el bit más significativo activado) significa que debería ser posible distinguir UTF-8 de otras codificaciones de caracteres sin depender de la BOM.
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 orden de bytes, que varía entre plataformas, afecta a cómo se manifiesta la unidad de código como una secuencia de bytes). En las demás codificaciones, cada punto de código puede representarse mediante un número variable de unidades de código. UTF-32 se utiliza ampliamente como representación interna de texto en programas (a diferencia del texto almacenado o transmitido), ya que todos los sistemas operativos Unix que utilizan los compiladores GCC para generar software lo emplean como codificación estándar de " caracteres anchos ". Las versiones recientes del lenguaje de programación Python (a partir de la 2.2) también pueden configurarse para usar UTF-32 como representación de cadenas Unicode, lo que contribuye a la difusión de dicha codificación en software de alto nivel .
Punycode , otra forma de codificación, permite codificar cadenas Unicode en el conjunto limitado de caracteres compatible con el Sistema de Nombres de Dominio (DNS) basado en ASCII . Esta codificación se utiliza como parte de IDNA , un sistema que permite el uso de nombres de dominio internacionalizados en todos los sistemas de escritura compatibles con Unicode. Entre las propuestas anteriores, ahora históricas, se 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 (RPC). 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
Unicode, en su forma UTF-8 , ha sido la codificación más común para la World Wide Web desde 2008. [ 76 ] Tiene una adopción casi universal, y gran parte del contenido que no está en UTF-8 se encuentra en otras codificaciones Unicode, por ejemplo, UTF-16 . A partir de 2024, UTF-8 representa en promedio el 98,3% de todas las páginas web (y 983 de las 1000 páginas web mejor clasificadas). [ 77 ] Aunque muchas páginas solo usan caracteres ASCII para mostrar contenido, UTF-8 fue diseñado con ASCII de 8 bits como un subconjunto y casi ningún sitio web ahora declara que su codificación es solo ASCII en lugar de UTF-8. [ 78 ] Más de un tercio de los idiomas rastreados tienen un uso 100% UTF-8.
Todos los protocolos de Internet mantenidos por el Grupo de Trabajo de Ingeniería de Internet , por ejemplo, el Protocolo de Transferencia de Archivos (FTP) , [ 79 ] han requerido soporte para UTF-8 desde la publicación del RFC 2277 en 1998, que especificaba que todos los protocolos del IETF "DEBEN poder usar el conjunto de caracteres UTF-8". [ 80 ]
Sistemas operativos
Unicode se ha convertido en el esquema dominante para el procesamiento y almacenamiento interno de texto. Aunque gran cantidad de texto todavía se almacena en codificaciones antiguas, Unicode se utiliza casi exclusivamente para la creación de nuevos sistemas de procesamiento de información. Los primeros usuarios tendieron a utilizar UCS-2 (el precursor obsoleto de dos bytes de longitud fija de UTF-16) y posteriormente migraron a UTF-16 (el estándar actual de longitud variable), ya que esta era la forma menos disruptiva de añadir compatibilidad con caracteres que no son BMP. El sistema más conocido es Windows NT (y sus sucesores, 2000 , XP , Vista , 7 , 8 , 10 y 11 ), que utiliza UTF-16 como única codificación interna de caracteres. Los entornos de bytecode de Java y .NET , macOS y KDE también lo utilizan para la representación interna. Se puede instalar compatibilidad parcial con Unicode en Windows 9x mediante la capa de Microsoft para Unicode.
UTF-8 (desarrollado originalmente para Plan 9 ) [ 81 ] se ha convertido en la principal codificación de almacenamiento en la mayoría de los sistemas operativos tipo Unix (aunque algunas bibliotecas también utilizan otras) 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 .
Entre los motores de renderizado de texto multilingües que utilizan Unicode se incluyen Uniscribe y DirectWrite para Microsoft Windows, ATSUI y Core Text para macOS, y Pango para GTK+ y el entorno de escritorio GNOME .
Métodos de entrada
Dado que la distribución del teclado no permite combinaciones de teclas sencillas para todos los caracteres, varios sistemas operativos ofrecen métodos de entrada alternativos que permiten acceder a todo el repertorio.
La norma ISO/IEC 14755 [ 82 ] , que estandariza los métodos para introducir caracteres Unicode a partir de sus puntos de código, especifica varios métodos. Existe el método básico , en el que una secuencia inicial va seguida de la representación hexadecimal del punto de código y la secuencia final . También se especifica un método de entrada por selección de pantalla , en el que los caracteres se muestran en una tabla en pantalla, como en un programa de mapa de caracteres.
Entre las herramientas en línea para encontrar el punto de código de un carácter conocido se encuentran Unicode Lookup [ 83 ] de Jonathan Hedley y Shapecatcher [ 84 ] de Benjamin Milde. En Unicode Lookup, se introduce una palabra clave de búsqueda (por ejemplo, "fracciones") y se devuelve una lista de caracteres correspondientes con sus puntos de código. En Shapecatcher, basado en el contexto Shape , se dibuja el carácter en un recuadro y se devuelve una lista de caracteres que se aproximan al dibujo, con sus respectivos puntos de código.
Correo electrónico
MIME define dos mecanismos distintos para codificar caracteres no ASCII en el correo electrónico, según si estos se encuentran en las cabeceras (como el asunto) o en el cuerpo del mensaje. En ambos casos, se identifica tanto el conjunto de caracteres original como la codificación de transferencia. Para la transmisión de Unicode por correo electrónico, se recomienda el conjunto de caracteres UTF-8 y la codificación de transferencia Base64 o Quoted-printable , dependiendo de si gran parte del mensaje contiene caracteres ASCII . Los detalles de ambos mecanismos se especifican en los estándares MIME y, por lo general, permanecen ocultos para los usuarios de software de correo electrónico.
El IETF ha definido [ 85 ] [ 86 ] un marco para el correo electrónico internacionalizado utilizando UTF-8, y ha actualizado [ 87 ] [ 88 ] [ 89 ] [ 90 ] varios protocolos de acuerdo con ese marco.
La adopción de Unicode en el correo electrónico ha sido muy lenta. Algunos textos de Asia Oriental todavía se codifican con sistemas de codificación como ISO-2022 , y algunos dispositivos, como los teléfonos móviles, aún no pueden procesar correctamente los datos Unicode. Sin embargo, la compatibilidad ha ido mejorando. Muchos de los principales proveedores de correo electrónico gratuito, como Yahoo! Mail , Gmail y Outlook.com, ya lo admiten.
Web
Todas las recomendaciones del W3C han utilizado Unicode como conjunto de caracteres para sus documentos desde HTML 4.0. Los navegadores web han sido compatibles con Unicode, especialmente con UTF-8, durante muchos años. Antes existían problemas de visualización derivados principalmente de problemas relacionados con las fuentes ; por ejemplo, las versiones 6 y anteriores de Microsoft Internet Explorer no mostraban muchos puntos de código a menos que se les indicara explícitamente que utilizaran una fuente que los contuviera. [ 91 ]
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, [ 92 ] comprenden caracteres de la mayoría de los puntos de código Unicode, con la excepción de:
- FFFE o FFFF.
- la mayoría de los códigos de control C0 ,
- los puntos de código D800–DFFF permanentemente no asignados,
Los caracteres HTML se manifiestan directamente como bytes según la codificación del documento, si esta los admite, o bien los usuarios pueden escribirlos como referencias numéricas de caracteres basadas en el punto de código Unicode del carácter. Por ejemplo, las referencias Δ, Й, ק, م, ๗, あ, 叶, 葉, y 말(o los mismos valores numéricos expresados en hexadecimal, con omo prefijo) deberían mostrarse en todos los navegadores como Δ, Й, ק ,م, ๗, あ, 叶, 葉 y 말.
Al especificar URI , por ejemplo como URL en solicitudes HTTP , los caracteres que no sean ASCII deben codificarse con porcentaje .
Fuentes
Unicode no se preocupa en principio por las fuentes en sí , sino que las considera opciones de implementación. [ 93 ] Cualquier carácter dado puede tener muchos alógrafos , desde las formas más comunes de letras en negrita, cursiva y base hasta estilos decorativos complejos. Una fuente es "compatible con Unicode" si se puede acceder a los glifos de la fuente utilizando los puntos de código definidos en el Estándar Unicode . [ 94 ] El estándar no especifica un número mínimo de caracteres que deba incluir la fuente; algunas fuentes tienen un repertorio bastante pequeño.
Existen numerosas fuentes gratuitas y comerciales basadas en Unicode, ya que TrueType y OpenType son compatibles con Unicode (y el formato Web Open Font Format (WOFF y WOFF2 ) se basa en ellos). Estos formatos de fuente asignan puntos de código Unicode a glifos, pero los archivos de fuente OpenType y TrueType están limitados a 65 535 glifos. Los archivos de colección ofrecen un mecanismo de "modo de espacio" para superar este límite en un único archivo de fuente. (Sin embargo, cada fuente dentro de la colección sigue teniendo el límite de 65 535 glifos). Un archivo de colección TrueType normalmente tendría la extensión ".ttc".
Existen miles de fuentes en el mercado, pero menos de una docena —a veces denominadas fuentes "pan-Unicode"— intentan admitir la mayor parte del repertorio de caracteres Unicode. En cambio, las fuentes basadas en Unicode suelen centrarse en admitir solo ASCII básico y sistemas de escritura o conjuntos de caracteres o símbolos específicos. 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 consumir recursos en los entornos informáticos; y los sistemas operativos y las aplicaciones muestran una inteligencia cada vez mayor en lo que respecta a la obtención de información de glifos de archivos de fuentes independientes según sea necesario, es decir, la sustitución de fuentes . Además, diseñar un conjunto coherente de instrucciones de representación para decenas de miles de glifos constituye una tarea monumental; tal empresa supera el punto de rendimiento decreciente para la mayoría de las tipografías.
Nuevas líneas
Unicode soluciona parcialmente el problema de los saltos de 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 cuanto al salto de línea, Unicode introdujo los separadores de línea U+2028 y U+2029 . Esto representó un intento de proporcionar una solución Unicode para la codificación semántica de párrafos y líneas, con el potencial de reemplazar las diversas soluciones de las distintas plataformas. De esta manera, Unicode ofrece una alternativa a las soluciones históricas dependientes de la plataforma. Sin embargo, pocas soluciones Unicode, si acaso alguna, han adoptado estos separadores de línea y párrafo como los únicos caracteres canónicos de fin de línea. No obstante, un enfoque común para resolver este problema es la normalización del salto de línea. Esto se logra con el sistema de texto Cocoa en macOS y también con las recomendaciones XML y HTML del W3C. En este enfoque, cada posible carácter de salto de línea se convierte internamente a un salto de línea común (cuyo carácter no importa realmente, ya que se trata de una operación interna para la representación). En otras palabras, el sistema de texto puede tratar correctamente el carácter como un salto de línea, independientemente de la codificación real de la entrada.
Asuntos
Unificación de personajes
Unificación Han
El Grupo de Investigación Ideográfica (IRG) tiene la tarea de asesorar al Consorcio y a la ISO sobre la unificación de caracteres Han, o Unihan, especialmente sobre la incorporación de ideogramas unificados y compatibles con caracteres chinos, japoneses y coreanos al repertorio. El IRG está compuesto por expertos de cada región que históricamente ha utilizado caracteres chinos . Sin embargo, a pesar de las deliberaciones dentro del comité, la unificación de caracteres Han ha sido sistemáticamente uno de los aspectos más controvertidos del Estándar Unicode desde el inicio del proyecto. [ 95 ]
Los estándares de conjuntos de caracteres existentes, como el japonés JIS X 0208 (codificado por Shift JIS ), definieron criterios de unificación, es decir, reglas para determinar cuándo un carácter chino variante debe considerarse una diferencia de escritura a mano/fuente (y, por lo tanto, unificarse), en contraposición a una diferencia ortográfica (que debe codificarse por separado). El modelo de caracteres de Unicode para caracteres CJK se basó en los criterios de unificación utilizados por JIS X 0208, así como en los desarrollados por la Asociación para un Código Chino Común en China. [ 96 ]
Debido al principio del estándar de codificar variantes semánticas en lugar de estilísticas, Unicode ha recibido críticas por no asignar puntos de código a ciertas variantes de kanji raras y arcaicas , lo que posiblemente complique el procesamiento de nombres japoneses antiguos y poco comunes. Dado que pone especial énfasis en que el chino, el japonés y el coreano comparten muchos caracteres, la unificación de Han también se percibe a veces como tratar a los tres como si fueran lo mismo. [ 97 ] Las diferencias regionales en las formas esperadas de los caracteres, en términos de convenciones tipográficas y planes de estudio para la escritura a mano, no siempre coinciden con las fronteras lingüísticas: aunque tanto Hong Kong como Taiwán escriben los idiomas chinos utilizando caracteres chinos tradicionales , las formas preferidas de los caracteres difieren entre Hong Kong y Taiwán en algunos casos. [ 98 ]
Existen codificaciones alternativas menos utilizadas, a menudo anteriores a Unicode, con modelos de caracteres que difieren de este paradigma y que buscan preservar las diversas diferencias estilísticas entre las formas de caracteres regionales y/o no estándar. Un ejemplo es el código TRON, preferido por algunos usuarios para manejar textos históricos japoneses, aunque no ampliamente adoptado por el público japonés. Otro ejemplo es la codificación CCCII , adoptada por los sistemas bibliotecarios de Hong Kong , Taiwán y Estados Unidos . Estas presentan sus propios inconvenientes en el uso general, lo que ha llevado a que la codificación Big5 (introducida en 1984, cuatro años después de CCCII) se haya vuelto más común que CCCII fuera de los sistemas bibliotecarios. [ 99 ] Si bien el trabajo de Apple basado en el CJK Thesaurus de Research Libraries Group , que se utilizó para mantener la variante EACC de CCCII, fue uno de los predecesores directos del conjunto Unihan de Unicode , Unicode adoptó el modelo de unificación de estilo JIS. [ 96 ]
La primera versión de Unicode tenía un repertorio de menos de 21 000 caracteres Han, limitados en gran medida a aquellos de uso relativamente común en la actualidad. A partir de la versión 17.0, el estándar ahora codifica más de 101 000 caracteres Han, y se sigue trabajando para añadir miles más, principalmente caracteres históricos y variantes dialectales utilizados en toda la sinosfera .
Las tipografías modernas ofrecen un medio para abordar algunos de los problemas prácticos que surgen al representar caracteres Han unificados con diversas representaciones gráficas regionales. La tabla OpenType 'locl' permite que un renderizador seleccione un glifo diferente para cada punto de código según la configuración regional del texto. [ 100 ] Las secuencias de variación Unicode también pueden proporcionar anotaciones en el texto para una selección de glifo deseada; esto requiere el registro de la variante específica en la Base de Datos de Variación Ideográfica .
Caracteres en cursiva o itálicos en cirílico

Si los glifos apropiados para caracteres de la misma escritura difieren solo en la cursiva, Unicode generalmente los ha unificado, como se puede ver en la comparación entre un conjunto de glifos en cursiva de siete caracteres que aparecen típicamente en textos rusos, búlgaros tradicionales, macedonios y serbios a la derecha, lo que significa que las diferencias se muestran mediante tecnología de fuentes inteligentes o cambiando manualmente las fuentes. Se utiliza la misma técnica OpenType 'locl'. [ 101 ]
Pares de casos localizados
Para su uso en el alfabeto turco y el alfabeto azerí , Unicode incluye una i minúscula sin punto (ı) y una i mayúscula con punto ( İ ) separadas. Sin embargo, se utilizan las letras ASCII habituales para la i minúscula con punto y la i mayúscula sin punto , de forma similar a como se manejan en la norma ISO 8859-9 anterior . Por lo tanto, las comparaciones que no distinguen entre mayúsculas y minúsculas para esos idiomas deben usar reglas diferentes a las comparaciones que no distinguen entre mayúsculas y minúsculas para otros idiomas que usan el alfabeto latino. [ 102 ] [ 103 ] Esto puede tener implicaciones de seguridad si, por ejemplo, el código de saneamiento o el control de acceso dependen de la comparación que no distingue entre mayúsculas y minúsculas. [ 103 ]
Por el contrario, la eth islandesa (ð) , la D barrada (đ) y la D retrofleja (ɖ) , que normalmente [ nota 4 ] se ven igual en mayúscula (Đ), reciben un tratamiento opuesto y se codifican por separado en ambos tipos de letra (a diferencia de la norma ISO 6937 anterior , que unifica las formas en mayúscula). Si bien permite la comparación sin distinción de mayúsculas y minúsculas sin necesidad de conocer el idioma del texto, este enfoque también presenta problemas, ya que requiere medidas de seguridad relacionadas con los ataques de homoglifos . [ 104 ]
Signos diacríticos en la letra I minúscula

El hecho de que la letra " i" minúscula conserve su título cuando se aplica un signo diacrítico también depende de las convenciones locales.
Seguridad
Unicode tiene una gran cantidad de homoglifos , muchos de los cuales se parecen mucho o son idénticos a las letras ASCII. La sustitución de estos puede hacer que un identificador o URL parezca correcto, pero que dirija a una ubicación diferente a la esperada. [ 105 ] Además, los homoglifos también se pueden usar para manipular la salida de los sistemas de procesamiento del lenguaje natural (PLN) . [ 106 ] La mitigación requiere prohibir estos caracteres, mostrarlos de manera diferente o exigir que se resuelvan al mismo identificador; [ 107 ] todo esto es complicado debido al enorme y cambiante conjunto de caracteres. [ 108 ] [ 109 ]
En 2021, dos investigadores, uno de la Universidad de Cambridge y otro de la Universidad de Edimburgo , publicaron un aviso de seguridad en el que afirmaban que las marcas BiDi podían utilizarse para que grandes secciones de código realizaran acciones distintas a las que aparentaban. El problema se denominó « Fuente troyana ». [ 110 ] En respuesta, los editores de código comenzaron a resaltar las marcas para indicar cambios forzados en la dirección del texto. [ 111 ]
Las codificaciones UTF-8 y UTF-16 no aceptan todas las secuencias posibles de unidades de código. Las implementaciones varían en su comportamiento al leer una secuencia no válida, lo que ha dado lugar a fallos de seguridad. [ 112 ] [ 113 ]
Asignación a conjuntos de caracteres heredados
Unicode se diseñó para proporcionar una conversión de formato bidireccional , punto por punto, desde y hacia cualquier codificación de caracteres preexistente, de modo que los archivos de texto en conjuntos de caracteres antiguos puedan convertirse a Unicode y luego volver a Unicode para obtener el mismo archivo, sin emplear una interpretación dependiente del contexto. Esto ha dado lugar a arquitecturas heredadas inconsistentes, como la combinación de diacríticos y caracteres precompuestos , que coexisten en Unicode, lo que proporciona más de un método para representar un mismo texto. Esto se observa con mayor claridad en las tres formas de codificación diferentes del Hangul coreano . Desde la versión 3.0, los caracteres precompuestos que pueden representarse mediante una secuencia combinada de caracteres ya existentes ya no pueden añadirse al estándar para preservar la interoperabilidad entre el software que utiliza diferentes versiones de Unicode.
Se deben proporcionar asignaciones inyectivas entre los caracteres de los conjuntos de caracteres heredados existentes y los caracteres de Unicode para facilitar la conversión a Unicode y permitir la interoperabilidad con el software heredado. La falta de coherencia en varias asignaciones entre codificaciones japonesas anteriores, como Shift-JIS o EUC-JP , y Unicode provocó discrepancias en la 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, a U+FF5E ~ FULLWIDTH TILDE (en Microsoft Windows ) o U+301C 〜 WAVE DASH (otros proveedores). [ 114 ]
Algunos programadores informáticos japoneses se opusieron a Unicode porque les obliga a separar el uso de U+005C \ REVERSE SOLIDUS (barra invertida) y U+00A5 ¥ YEN SIGN , que se asignaba a 0x5C en JIS X 0201, y existe mucho código heredado con este uso. [ 115 ] (Esta codificación también reemplaza la tilde '~' 0x7E con el macrón '¯', ahora 0xAF). La separación de estos caracteres existe en ISO 8859-1 , de mucho antes de Unicode.
Escrituras índicas
A las escrituras índicas como el tamil y el devanagari se les asignan solo 128 puntos de código cada una, en consonancia 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 académicos locales argumentaron a favor de la asignación de puntos de código Unicode a estas ligaduras, en contra de la práctica de otros sistemas de escritura, aunque Unicode contiene algunas ligaduras árabes y de otros idiomas solo por motivos de compatibilidad con versiones anteriores. [ 116 ] [ 117 ] [ 118 ] La codificación de nuevas ligaduras en Unicode no se producirá, 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, [ 119 ] pero estas fueron rechazadas para su codificación por el comité ISO pertinente ( ISO/IEC JTC 1/SC 2 ). [ 120 ]
El soporte para el alfabeto tailandés ha sido criticado por su ordenación de caracteres tailandeses. Las vocales เ, แ, โ, ใ, ไ que se escriben a la izquierda de la consonante precedente están en orden visual en lugar de 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 siempre se había escrito el tailandés en los teclados. Este problema de ordenación complica ligeramente el proceso de intercalación de Unicode, requiriendo búsquedas en tablas para reordenar los caracteres tailandeses para la intercalación. [ 97 ] Incluso si Unicode hubiera adoptado la codificación según el orden hablado, seguiría siendo problemático intercalar palabras en el orden del diccionario. Por ejemplo, la palabra แสดง[ sa dɛːŋ ] "perform" comienza con un grupo de consonantes "สด" (con una vocal inherente para la consonante "ส"), la vocal แ-, en orden hablado iría después de la ด, pero en un diccionario, la palabra se coteja como se escribe, con la vocal después de la ส.
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 uno o más signos que no sean de espaciado. Por ejemplo, ḗ (e precompuesta con macrón y acento agudo arriba) y ē ́ (e seguida del macrón y el acento agudo combinatorios arriba) deberían representarse de forma idéntica, apareciendo ambas como una e con un macrón (◌̄) y un acento agudo (◌ ́ ), pero en la práctica, su apariencia puede variar según el motor de renderizado y las fuentes que se utilicen para mostrar los caracteres. Del mismo modo, los puntos inferiores , necesarios en la romanización de las lenguas índicas , a menudo se colocan incorrectamente. En muchos casos, se pueden usar caracteres Unicode que se corresponden con glifos precompuestos, evitando así el problema, pero cuando no se ha codificado ningún carácter precompuesto, el problema suele resolverse utilizando una fuente Unicode especializada como Charis SIL , que utiliza las tecnologías Graphite , OpenType ('gsub') o AAT para funciones de renderizado avanzadas.
Anomalías
El estándar Unicode ha impuesto reglas destinadas a garantizar la estabilidad. [ 121 ] Dependiendo de la rigurosidad de una regla, un cambio puede estar prohibido o permitido. Por ejemplo, un "nombre" dado a un punto de código no puede ni podrá cambiar. Pero una propiedad de "escritura" 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 de la versión 1. Al mismo tiempo, Unicode declaró que, a partir de entonces, un nombre asignado a un punto de código nunca cambiaría. Esto implica que cuando se publican errores, estos no se pueden corregir, incluso si son triviales (como sucedió en un caso con la ortografía BRAKCET en lugar de BRACKET en el nombre de un carácter). En 2006 se publicó por primera vez una lista de anomalías en los nombres de caracteres y, a junio de 2021, había 104 caracteres con problemas identificados, [ 122 ] por ejemplo:
- U+034F ͏ COMBINANDO UNICIÓN DE GRAFEMAS : No une grafemas. [ 122 ]
- U+2118 ℘ ESCRITURA MAYÚSCULA P : Esta es una letra minúscula. La mayúscula es U+1D4AB 𝒫 ESCRITURA MATEMÁTICA MAYÚSCULA P. [ 123 ]
- U+A015 ꀕ SÍLABA YI WU : Esta no es una sílaba Yi, sino una marca de iteración Yi.
- U+FE18 ︘ FORMATO DE PRESENTACIÓN PARA CORCHETE LENTICULAR BLANCO VERTICAL DERECHO : el corchete está mal escrito. [ 124 ] (Los errores ortográficos se resuelven utilizando alias Unicode ).
Si bien Unicode define el designador (nombre) de escritura como " Phags_Pa ", en los nombres de caracteres de esa escritura se agrega un guion: U+A840 ꡀ PHAGS-PA LETRA KA . [ 125 ] [ 126 ] Sin embargo, esto no es una anomalía, sino la regla: los guiones se reemplazan por guiones bajos en los designadores de escritura. [ 125 ]
Véase también
- Comparación de codificaciones Unicode
- Componentes Internacionales para Unicode (ICU), ahora como ICU- TC, que forma parte de Unicode.
- Lista de códigos binarios
- Lista de caracteres Unicode
- Lista de referencias a entidades de caracteres XML y HTML
- Conjunto de caracteres multibyte de Lotus (LMBCS), un desarrollo paralelo con intenciones similares.
- Tipografías Unicode de código abierto
- Símbolos religiosos y políticos en Unicode
- Estándares relacionados con Unicode
- Símbolo Unicode
- Conjunto de caracteres codificados universal
Notas
- ↑ "Un Anexo del Estándar Unicode (UAX) forma parte integral del Estándar Unicode , pero se publica como un documento aparte."
- ↑ El prefijo de dos caracteres
U+fue elegido como una aproximación ASCII de U+228E ⊎ MULTISET UNION . [ 62 ] - ↑ Un punto de código es una representación abstracta de un carácter UCS mediante un número entero entre 0 y 1.114.111 (1.114.112 = 2²⁰ + 2¹⁶ o 17 × 2¹⁶ = 0 x 110.000 puntos de código).
- ↑ En raras ocasiones, la letra islandesa mayúscula eth puede escribirse en un estilo insular (Ꝺ) con la barra transversal situada en el tallo, especialmente si es necesario distinguirla de la letra D retrofleja mayúscula (véase Alfabeto de referencia africano ).
Referencias
- ↑ "Informe técnico de Unicode n.º 28: Unicode 3.2" . Consorcio Unicode . 27 de marzo de 2002. Consultado el 23 de junio de 2022 .
- ↑ Jenkins, John H. (26 de agosto de 2021). "Anexo estándar Unicode n.° 45: Ideogramas de origen U" . Consorcio Unicode . §2.2 El campo de origen . Recuperado el 23 de junio de 2022 .
- ↑
- ↑ "El estándar Unicode: una introducción técnica" . 22 de agosto de 2019. Consultado el 11 de septiembre de 2024 .
- ↑ "Emoji Counts, v16.0" . El Consorcio Unicode . Consultado el 10 de septiembre de 2024 .
- 1 2 3 4 5 Becker, Joseph D. (1998-09-10) [1988-08-29]. "Unicode 88" (PDF) . Consorcio Unicode . Archivado (PDF) del original el 2016-11-25 . Recuperado el 2016-10-25 . En 1978,
Bob Belleville
de
Xerox PARC
hizo la propuesta inicial de un conjunto de "signos universales".
Muchas personas contribuyeron con ideas al desarrollo de un nuevo diseño de codificación. A partir de 1980, estos esfuerzos evolucionaron en el
Estándar de Código de Caracteres de Xerox
(XCCS) por el presente autor, una codificación multilingüe que Xerox ha mantenido como un estándar corporativo interno desde 1982, a través de 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 respecto a XCCS fueron propuestas por Peter Fenwick y Dave Opstad (códigos puros de 16 bits) y por
Lee Collins
(unificación de caracteres ideográficos). Unicode conserva muchas características de XCCS cuya utilidad ha quedado demostrada a lo largo de los años en una línea internacional de productos de sistemas de comunicación multilingües.
- 1 2 "Resumen narrativo" . Unicode . 31 de agosto de 2006. Consultado el 15 de marzo de 2010 .
- ↑ "Historial de lanzamientos y fechas de publicación de Unicode" . Unicode . Consultado el 20 de marzo de 2023 .
- ↑ Searle, Stephen J. "Unicode Revisited" . Consultado el 18 de enero de 2013 .
- 1 2 "Los miembros del Consorcio Unicode" . Consultado el 12 de febrero de 2024 .
- ↑ "Premio Bulldog Unicode" . Unicode . Archivado del original el 11 de noviembre de 2023.
- ↑ "Algoritmos de escritura compatibles" . Unicode . Consultado el 9 de septiembre de 2025 .
- ↑ Otung, Ifiok (28 de enero de 2021). Principios de ingeniería de comunicaciones . John Wiley & Sons. pág. 12. ISBN 978-1-119-27407-0.
- ↑ "Preguntas frecuentes sobre Unicode" . Consultado el 2 de abril de 2020 .
- ↑ "Hoja de ruta hacia el BMP" . Consorcio Unicode . Consultado el 30 de julio de 2018 .
- ↑ "Hojas de ruta hacia Unicode" . Unicode . Archivado del original el 8 de diciembre de 2023.
- ↑ "Iniciativa de codificación de scripts" . Iniciativa de codificación de scripts . Archivado del original el 25 de marzo de 2023.
- ↑ "Acerca de la Iniciativa de Codificación de Escrituras" . El Consorcio Unicode . Consultado el 4 de junio de 2012 .
- ↑ "Scripts para codificar" .
- ↑ "Unicode 6.1 Edición de bolsillo disponible" . announcements_at_unicode.org . Consultado el 30 de mayo de 2012 .
- ↑ "Versiones enumeradas del estándar Unicode" . Consultado el 12 de septiembre de 2025 .
- ↑
- ↑
- ↑
- ↑
- 1 2
- ↑
- ↑
- ↑
- ↑
- ↑
- ↑ "Secuencias con nombre-4.1.0" . Unicode . 2005. Consultado el 16 de marzo de 2010 .
- ↑ El estándar Unicode, versión 5.0.0 . Mountain View, California: Consorcio Unicode. 14 de julio de 2006. ISBN 0-321-48091-0.
- ↑ "Datos Unicode 5.0.0" . Consultado el 17 de marzo de 2010 .
- ↑
- ↑
- ↑
- ↑ "Lista de emojis Unicode 6.0" . emojipedia.org . Consultado el 21 de septiembre de 2022 .
- ↑
- ↑
- ↑
- ↑
- ↑
- ↑ El estándar Unicode, versión 8.0.0 . Mountain View, California: Consorcio Unicode. 17 de junio de 2015. ISBN 978-1-936213-10-8.
- ↑ El estándar Unicode, versión 9.0.0 . Mountain View, California: Consorcio Unicode. 21 de junio de 2016. ISBN 978-1-936213-13-9.
- ↑
- ↑ Lobao, Martim (2016-06-07). "Estos son los dos emojis que no fueron aprobados para Unicode 9 pero que Google agregó a Android de todos modos" . Android Police . Recuperado el 2016-09-04 .
- ↑ El estándar Unicode, versión 10.0.0 . Mountain View, California: Consorcio Unicode. 2017-06-20. ISBN 978-1-936213-16-0.
- ↑ El estándar Unicode, versión 11.0.0 . Mountain View, California: Consorcio Unicode. 5 de junio de 2018. ISBN 978-1-936213-19-1.
- ↑ El estándar Unicode, versión 12.0.0 . Mountain View, California: Consorcio Unicode. 5 de marzo de 2019. ISBN 978-1-936213-22-1.
- ↑ "Se publica la versión 12.1 de Unicode en apoyo de la era Reiwa" . El blog de Unicode . Consultado el 7 de mayo de 2019 .
- ↑
- ↑ "El estándar Unicode, versión 13.0 – Apéndice C de la especificación principal" (PDF) . Consorcio Unicode . Consultado el 11 de marzo de 2020 .
- ↑
- ↑ El estándar Unicode, versión 15.0.0 . Mountain View, California: Consorcio Unicode. 13 de septiembre de 2022. ISBN 978-1-936213-32-0.
- ↑
- ↑ El estándar Unicode, versión 16.0.0 . South San Francisco, California: The Unicode Consortium. 10 de septiembre de 2024. ISBN 978-1-936213-34-4.
- ↑ El estándar Unicode, versión 17.0.0 . South San Francisco, California: The Unicode Consortium. 9 de septiembre de 2025. ISBN 978-1-936213-35-1.
- ↑ "Glosario de términos Unicode" . Consultado el 16 de marzo de 2010 .
- ↑ "2.4 Puntos de código y caracteres". El estándar Unicode versión 16.0 – Especificación principal . 2024.
- ↑ "3.4 Caracteres y codificación". El estándar Unicode, versión 16.0 . 2024.
- ↑ "Re: Origen de la notación U+nnnn" . Archivo de la lista de correo de Unicode (Lista de correo). 8 de noviembre de 2005.
- ↑ «Apéndice A: Convenciones de Notación» . El estándar Unicode . Consorcio Unicode. Septiembre de 2024.
- ↑ "Conformidad" . El estándar Unicode ( ed. 6.0 ). Mountain View, California, EE. UU.: The Unicode Consortium . 3.9 Formas de codificación Unicode. ISBN 978-1-936213-01-6
Cada forma de codificación asigna los puntos de código Unicode U+0000..U+D7FF y U+E000..U+10FFFF
. - 1 2 "Política de estabilidad de la codificación de caracteres Unicode" . Consultado el 16 de marzo de 2010 .
- ↑ "Propiedades" . Consultado el 21 de septiembre de 2025 .
- ↑ "Modelo de codificación de caracteres Unicode" . Consultado el 12 de septiembre de 2023 .
- ↑ "Secuencias con nombre Unicode" . Consultado el 21 de septiembre de 2025 .
- ↑ "Alias de nombres Unicode" . Consultado el 21 de septiembre de 2025 .
- ↑ "JanaSanskritSans" . Archivado del original el 16 de julio de 2011.
- ↑ CWA 13873:2000 – Subconjuntos europeos multilingües en ISO/IEC 10646-1 Acuerdo de taller CEN 13873
- ↑ Kuhn, Markus (1998). "Fundamentos del conjunto de caracteres europeos multilingües 2 (MES-2)" . Universidad de Cambridge . Recuperado el 20 de marzo de 2023 .
- ↑ "DIN 91379:2022-08: Caracteres y secuencias de caracteres definidas en Unicode para el procesamiento electrónico de nombres e intercambio de datos en Europa, con CD-ROM" . Beuth Verlag . Consultado el 21 de agosto de 2022 .
- ↑ "UTF-8, UTF-16, UTF-32 y BOM" . Preguntas frecuentes de Unicode.org . Consultado el 12 de diciembre de 2016 .
- ↑ El estándar Unicode, versión 6.2 . El Consorcio Unicode. 2013. pág. 561. ISBN 978-1-936213-08-5.
- ↑ Davis, Mark (5 de mayo de 2008). "Transición a Unicode 5.1" . Blog oficial de Google . Archivado del original el 1 de abril de 2025. Consultado el 12 de abril de 2025 .
- ↑ "Encuesta de uso de codificaciones de caracteres desglosada por clasificación" . W3Techs . Consultado el 12 de abril de 2025 .
- ↑ "Estadísticas de uso de US-ASCII para sitios web" . W3Techs . Consultado el 1 de noviembre de 2020 .
- ↑ B. Curtin (julio de 1999). Internacionalización del protocolo de transferencia de archivos . IETF . doi : 10.17487/RFC2640 . RFC 2640. Consultado el 12 de abril de 2025 .
- ↑ H. Alvestrand (enero de 1998). Política del IETF sobre conjuntos de caracteres e idiomas . IETF . doi : 10.17487/RFC2277 . BCP 18. RFC 2277. Archivado del original el 23 de enero de 2023. Consultado el 12 de abril de 2025 .
- ↑ Pike, Rob (30 de abril de 2003). "Historia de UTF-8" .
- ↑ "ISO/IEC JTC1/SC 18/WG 9 N" (PDF) . Archivado (PDF) del original el 22/01/2025 . Consultado el 12/04/2025 .
- ↑ Hedley, Jonathan (2009). "Unicode Lookup" . Archivado del original el 30 de marzo de 2025. Recuperado el 12 de abril de 2025 .
- ↑ Milde, Benjamin (2025). "Reconocimiento de caracteres Unicode" . Archivado del original el 2 de abril de 2025.
- ↑ J. Klensin; Y. Ko (julio de 2007). Descripción general y marco para el correo electrónico internacionalizado . IETF . doi : 10.17487/RFC4952 . RFC 4952 . Consultado el 17 de agosto de 2022 .
- ↑ J. Klensin; Y. Ko (febrero de 2012). Descripción general y marco para el correo electrónico internacionalizado . IETF . doi : 10.17487/RFC6530 . RFC 6530 . Consultado el 17 de agosto de 2022 .
- ↑ J. Yao; W. Mao (febrero de 2012). Extensión SMTP para correo electrónico internacionalizado . IETF . doi : 10.17487/RFC6531 . RFC 6531. Consultado el 17 de agosto de 2022 .
- ↑ A. Yang; S. Steele; N. Freed (febrero de 2012). Encabezados de correo electrónico internacionalizados . IETF . doi : 10.17487/RFC6532 . RFC 6532. Consultado el 17 de agosto de 2022 .
- ↑ C. Newman; A. Gulbrandsen; A. Melnikov (junio de 2008). Internacionalización del Protocolo de Acceso a Mensajes de Internet . IETF . doi : 10.17487/RFC5255 . RFC 5255. Consultado el 17 de agosto de 2022 .
- ↑ R. Gellens; C. Newman (febrero de 2010). Soporte POP3 para UTF-8 . IETF . doi : 10.17487/RFC5721 . RFC 5721. Recuperado el 17 de agosto de 2022 .
- ↑ Wood, Alan (13 de septiembre de 2005). "Configuración de Windows Internet Explorer 5, 5.5 y 6 para compatibilidad multilingüe y Unicode: Opciones para habilitar Unicode en Internet Explorer 5, 5.5 y 6: Fuentes (IE 5, 5.5 y 6) " . Alan Wood. Archivado del original el 20 de enero de 2025. Consultado el 12 de abril de 2025 .
- ↑ "Lenguaje de marcado extensible (XML) 1.1 (Segunda edición)" . Consorcio World Wide Web . 29 de septiembre de 2006. Archivado del original el 5 de abril de 2025. Consultado el 12 de abril de 2025 .
- ↑ Bigelow, Charles; Holmes, Kris (septiembre de 1993). "El diseño de una fuente Unicode" (PDF) . Publicación electrónica . 6 (3): 292. ISSN 0894-3982 . Archivado (PDF) del original el 16 de febrero de 2025. Recuperado el 12 de abril de 2025 .
- ↑ "Preguntas frecuentes: Fuentes y teclados: Fuentes y Unicode " . Consorcio Unicode . Archivado del original el 6 de marzo de 2025. Consultado el 12 de abril de 2025 .
- ↑ Breve historia de los códigos de caracteres , Steven J. Searle, escrito originalmente en 1999 , última actualización en 2004.
- 1 2 "Apéndice E: Historia de la unificación Han" . El estándar Unicode versión 16.0 – Especificación principal . Consorcio Unicode . 2024.
- 1 2 Topping, Suzanne (25-06-2013). "La vida secreta de Unicode" . IBM . Archivado del original el 25-06-2013 . Recuperado el 20-03-2023 .
- ↑ Lu, Qin (2015-06-08). "El conjunto de caracteres propuesto para Hong Kong" (PDF) . ISO/IEC JTC1 / SC2 /WG2/ IRG N2074.
- ↑ Wittern, Christian (1995-05-01). "Códigos de caracteres chinos: una actualización" . Instituto Internacional de Investigación del Budismo Zen / Universidad de Hanazono . Archivado del original el 12 de octubre de 2004.
- ↑ "Fuentes Noto CJK" . Fuentes Noto. 18/02/2023.
Seleccione este formato de implementación si su sistema admite fuentes variables y prefiere usar solo un idioma, pero también desea una cobertura completa de caracteres o la capacidad de etiquetar el texto con glifos apropiados para los demás idiomas (esto requiere una aplicación que admita el etiquetado de idiomas y la función GSUB 'locl' de OpenType).
- ↑ Preuss, Ingo. "Función OpenType: locl – Formularios localizados" . preusstype.com .
- ↑ "Propiedades de plegado de mayúsculas y minúsculas" . Base de datos de caracteres Unicode . Consorcio Unicode . 30 de julio de 2025.
- 1 2 "Opciones de expresiones regulares § Comparación mediante la cultura invariante" . Documentación de fundamentos de .NET . Microsoft . 12 de mayo de 2023.
- ↑ "confusablesSummary.txt" . Mecanismos de seguridad Unicode para UTS #39 . Consorcio Unicode . 11 de agosto de 2023.
- ↑ "UTR #36: Consideraciones de seguridad de Unicode" . Unicode .
- ↑ Boucher, Nicholas; Shumailov, Ilia; Anderson, Ross; Papernot, Nicolas (2022). «Bad Characters: Imperceptible NLP Attacks». 2022 IEEE Symposium on Security and Privacy (SP) . San Francisco, CA, EE. UU.: IEEE. pp. 1987–2004 . arXiv : 2106.09898 . doi : 10.1109/SP46214.2022.9833641 . ISBN 978-1-66541-316-9. S2CID 235485405 .
- ↑ Ingeniería, Spotify (18 de junio de 2013). "Nombres de usuario creativos y secuestro de cuentas de Spotify" . Ingeniería de Spotify . Consultado el 15 de abril de 2023 .
- ↑ Wheeler, David A. (2020). Análisis inicial del código fuente manipulado (Informe técnico). pág. 4–1–4–10. JSTOR resrep25332.7 .
- ↑ "UTR #36: Consideraciones de seguridad de Unicode" . Unicode . Consultado el 27 de junio de 2022 .
- ↑ Boucher, Nicholas; Anderson, Ross. "Fuente troyana: vulnerabilidades invisibles" (PDF) . Consultado el 2 de noviembre de 2021 .
- ↑ "Visual Studio Code octubre de 2021" . code.visualstudio.com . Consultado el 11 de noviembre de 2021 .
- ↑ Dittert, Dominique (2024-09-06). "De Unicode a la explotación: los riesgos de seguridad de las codificaciones UTF-8 excesivamente largas" . Recuperado el 26 de diciembre de 2024 .
- ↑ Boone, Kevin. "UTF-8 y el problema de los caracteres demasiado largos" . Consultado el 26 de diciembre de 2024 .
- ↑ Contribución de AFII sobre WAVE DASH , "Una tabla de caracteres específica del proveedor Unicode para el japonés" . 22/04/2011. Archivado del original el 22/04/2011 . Recuperado el 20/05/2019 .
- ↑ Problema ISO 646-* Archivado el 23/04/2019 en Wayback Machine , Sección 4.4.3.5 de Introducción a la 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ética" (PDF) . Consultado el 20 de marzo de 2010 .
- ↑ "Propuesta sobre la codificación de caracteres tibetanos BrdaRten para ISO/IEC 10646 en BMP" (PDF) . 2 de diciembre de 2002.
- ↑ Umamaheswaran, VS (2003-11-07). "Resoluciones de la reunión 44 del Grupo de Trabajo 2" (PDF) . Resolución M44.20.
- ↑ "Estabilidad de la codificación de caracteres" . Unicode . Archivado del original el 1 de enero de 2024.
- 1 2 "Nota técnica Unicode n.º 27: Anomalías conocidas en los nombres de caracteres Unicode" . Unicode . 14 de junio de 2021.
- ↑ "Tabla Unicode: "en realidad tiene la forma de una p minúscula caligráfica, a pesar de su nombre"" (PDF) .
- ↑ "La falta de ortografía de BRACKET en el nombre del personaje es un defecto conocido" (PDF) .
- 1 2 "Anexo estándar Unicode n.º 24: Propiedad de escritura Unicode" . El Consorcio Unicode. 2021. 2.2 Relación con los códigos ISO 15924. Recuperado el 29 de abril de 2022 .
- ↑ "Scripts.txt" . El Consorcio Unicode. 2025. Consultado el 21 de septiembre de 2025 .
Lecturas adicionales
- Julie D. Allen. El estándar Unicode, versión 6.0 , The Unicode Consortium , Mountain View, 2011, ISBN 9781936213016, ( Unicode 6.0.0 ).
- Manual completo de tipografía , James Felici, Adobe Press; 1.ª edición, 2002. ISBN 0-321-12730-7
- El estándar Unicode, versión 3.0 , The Unicode Consortium, Addison-Wesley Longman, Inc., abril de 2000. ISBN 0-201-61633-5
- El estándar Unicode, versión 4.0 , The Unicode Consortium, Addison-Wesley Professional, 27 de agosto de 2003. ISBN 0-321-18578-1
- El estándar Unicode, versión 5.0, quinta edición , The Unicode Consortium , Addison-Wesley Professional, 27 de octubre de 2006. ISBN 0-321-48091-0
- Unicode desmitificado: Una guía práctica para programadores sobre el estándar de codificación , Richard Gillam, Addison-Wesley Professional; 1.ª edición, 2002. ISBN 0-201-70052-2
- Unicode explicado , Jukka K. Korpela, O'Reilly; 1ª edición, 2006. ISBN 0-596-10121-X
- Unicode: Una introducción , Tony Graham, M & T books, 2000. ISBN 0-7645-4625-2.
Enlaces externos
- Unicode, Inc.
- Sitio técnico de Unicode
- El estándar Unicode
- Tablas de códigos de caracteres Unicode
- Índice de nombres de caracteres Unicode
- El estándar Unicode
- Sitio técnico de Unicode
- Recursos Unicode de Alan Wood : contiene listas de procesadores de texto con capacidad Unicode; las fuentes y los caracteres están agrupados por tipo; los caracteres se presentan en listas, no en cuadrículas.
- Fuente de reserva Unicode BMP : muestra el valor Unicode 6.1 de cualquier carácter en un documento, incluso en el Área de uso privado, en lugar del glifo en sí.
- Los sistemas de escritura del mundo , los 293 sistemas de escritura conocidos con su estado Unicode (128 aún no codificados a junio de 2024). )
- Unicode
- Codificación de caracteres
- Tipografía digital
- Software de dominio público con código fuente