

El Consorcio Unicode y el ISO/IEC JTC 1/SC 2 / WG 2 colaboran conjuntamente en la lista de caracteres del Conjunto Universal de Caracteres Codificados ( UCS) . El UCS es un estándar internacional que asigna caracteres , símbolos discretos utilizados en el lenguaje natural , las matemáticas , la música y otros ámbitos, a valores de datos únicos legibles por máquina . Gracias a esta asignación, el UCS permite a los proveedores de software informático interoperar y transmitir ( intercambiar ) cadenas de texto codificadas en UCS . Al ser un mapa universal , puede utilizarse para representar varios idiomas simultáneamente. Esto evita la confusión que supone el uso de múltiples codificaciones de caracteres heredadas , lo que puede dar lugar a que una misma secuencia de códigos tenga múltiples interpretaciones según la codificación utilizada, generando errores tipográficos si se elige la incorrecta.
UCS tiene una capacidad potencial de más de 1 millón de caracteres. Cada carácter UCS se representa abstractamente mediante un punto de código , 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 ), utilizado para representar cada carácter dentro de la lógica interna del software de procesamiento de texto . A partir de Unicode 17.0 , publicado en septiembre de 2025, 303.808 (27%) de estos puntos de código están asignados, 159.866 (14%) se han asignado a caracteres, 137.468 (12%) están reservados para uso privado , 2.048 se utilizan para habilitar el mecanismo de sustitutos y 66 están designados como no caracteres , dejando los 810.304 restantes (73%) sin asignar. El número de caracteres codificados se compone de la siguiente manera:
- 159.629 caracteres gráficos (algunos de los cuales no tienen un glifo visible , pero aun así se consideran gráficos).
- 237 caracteres especiales para control y formato .
ISO mantiene la correspondencia básica entre el nombre del carácter y su punto de código. A menudo, los términos carácter y punto de código se usan indistintamente. Sin embargo, cuando se hace una distinción, un punto de código se refiere al número entero del carácter: lo que podría considerarse su dirección. Mientras tanto, un carácter en ISO/IEC 10646 incluye la combinación del punto de código y su nombre. Unicode agrega muchas otras propiedades útiles al conjunto de caracteres, como bloque , categoría, escritura y direccionalidad .
Además del UCS, el estándar Unicode complementario (que no es un proyecto conjunto con ISO, sino una publicación del Consorcio Unicode) proporciona otros detalles de implementación, tales como:
- Correspondencias entre UCS y otros conjuntos de caracteres
- diferentes combinaciones de caracteres y cadenas de caracteres para diferentes idiomas
- un algoritmo para la maquetación de texto bidireccional ("el algoritmo BiDi "), donde el texto en la misma línea puede alternar entre izquierda a derecha ("LTR") y derecha a izquierda ("RTL").
- un algoritmo de plegado de casos
Los usuarios finales de software informático introducen estos caracteres en los programas mediante diversos métodos de entrada , por ejemplo, teclados físicos o paletas de caracteres virtuales .
El UCS se puede dividir de varias maneras, como por plano , bloque, categoría de carácter o propiedad de carácter . [ 1 ]
Resumen de referencias de personajes
Una referencia numérica de caracteres HTML o XML hace referencia a un carácter por su punto de código del Conjunto Universal de Caracteres /Unicode y utiliza el formato
&#nnnn;
o
&#xhhhh;
donde nnnn es el punto de código en formato decimal y hhhh es el punto de código en formato hexadecimal . La x debe estar en minúscula en los documentos XML. nnnn o hhhh pueden contener cualquier número de dígitos y pueden incluir ceros iniciales. hhhh puede combinar mayúsculas y minúsculas, aunque lo habitual es usar mayúsculas.
En cambio, una referencia a una entidad de carácter se refiere a un carácter mediante el nombre de una entidad que tiene el carácter deseado como texto de reemplazo . La entidad debe estar predefinida (integrada en el lenguaje de marcado) o declarada explícitamente en una Definición de Tipo de Documento (DTD). El formato es el mismo que para cualquier referencia a una entidad:
&nombre;
donde nombre es el nombre de la entidad, respetando las mayúsculas y minúsculas. El punto y coma es obligatorio.
Aviones
Unicode e ISO dividen el conjunto de puntos de código en 17 planos, cada uno capaz de contener 65 536 caracteres distintos, o 1 114 112 en total. A fecha de 2025 (Unicode 17.0 ), ISO y el Consorcio Unicode solo han asignado caracteres y bloques en siete de los 17 planos. Los demás permanecen vacíos y reservados para uso futuro.
Actualmente, la mayoría de los caracteres se asignan al primer plano: el Plano Multilingüe Básico . Esto facilita la transición para el software heredado, ya que el Plano Multilingüe Básico se puede direccionar con solo dos octetos . Los caracteres que no pertenecen al primer plano suelen tener un uso muy especializado o poco frecuente.
Cada plano corresponde al valor de uno o dos dígitos hexadecimales (0-9, A-F) que preceden a los cuatro últimos: por lo tanto, U+24321 está en el Plano 2, U+4321 está en el Plano 0 (implícitamente se lee U+04321) y U+10A200 estaría en el Plano 16 (hexadecimal 10 = decimal 16). Dentro de un plano, el rango de puntos de código es hexadecimal 0000-FFFF, lo que da como resultado un máximo de 65536 puntos de código. Los planos restringen los puntos de código a un subconjunto de ese rango.
Bloques
Unicode añade una propiedad de bloque al UCS que divide cada plano en bloques separados. Cada bloque es una agrupación de caracteres según su uso, como "operadores matemáticos" o "caracteres de la escritura hebrea". Al asignar caracteres a puntos de código previamente no asignados, el Consorcio suele asignar bloques completos de caracteres similares: por ejemplo, todos los caracteres pertenecientes a la misma escritura o todos los símbolos con un propósito similar se asignan a un solo bloque. Los bloques también pueden mantener puntos de código no asignados o reservados cuando el Consorcio prevé que un bloque requerirá asignaciones adicionales.
Los primeros 256 puntos de código del UCS corresponden a los de ISO 8859-1 , la codificación de caracteres de 8 bits más popular en Occidente . Por consiguiente, los primeros 128 caracteres también son idénticos a ASCII . Si bien Unicode los denomina bloque de escritura latina, estos dos bloques contienen muchos caracteres de uso común fuera de la escritura latina. En general, no todos los caracteres de un bloque determinado tienen por qué pertenecer a la misma escritura, y una misma escritura puede aparecer en varios bloques diferentes.
Categorías
Unicode asigna a cada carácter UCS una categoría general y una subcategoría. Las categorías generales son: letra, marca, número, puntuación, símbolo o control (es decir, un carácter de formato o no gráfico).
Los tipos incluyen:
- Escrituras modernas, históricas y antiguas . A partir de 2025 (Unicode 17.0 ), el UCS identifica 172 escrituras que se utilizan o se han utilizado en todo el mundo. Muchas más se encuentran en diversas etapas de aprobación para su futura inclusión en el UCS. [ 2 ]
- Alfabeto Fonético Internacional . El UCS dedica varios bloques (más de 300 caracteres) a los caracteres del Alfabeto Fonético Internacional .
- Combinación de signos diacríticos . Un avance importante concebido por Unicode al diseñar el UCS y los algoritmos relacionados para el procesamiento de texto fue la introducción de la combinación de signos diacríticos. Al proporcionar acentos que pueden combinarse con cualquier carácter de letra, Unicode y el UCS reducen significativamente la cantidad de caracteres necesarios. Si bien el UCS también incluye caracteres precompuestos, estos se incluyeron principalmente para facilitar la compatibilidad dentro del UCS con sistemas de procesamiento de texto que no son Unicode.
- Puntuación . Además de unificar los signos diacríticos, el UCS también buscaba unificar la puntuación en todos los sistemas de escritura. Sin embargo, muchos sistemas de escritura contienen signos de puntuación que no tienen un significado similar en otros sistemas.
- Símbolos . El UCS incluye numerosos símbolos matemáticos, técnicos, geométricos y de otra índole. Esto permite que cada símbolo tenga su propio punto de código o carácter, en lugar de depender del cambio de fuentes para representar los glifos simbólicos.
- Divisa .
- Símbolos parecidos a letras . Estos símbolos se parecen a combinaciones de muchas letras comunes de la escritura latina, como ℅ . Unicode designa muchos de los símbolos parecidos a letras como caracteres de compatibilidad, generalmente porque pueden estar en texto plano sustituyendo glifos por una secuencia de caracteres que los compone: por ejemplo, sustituyendo el glifo ℅ por la secuencia compuesta de caracteres c/o .
- Formas numéricas . Las formas numéricas consisten principalmente en fracciones precompuestas y números romanos. Al igual que en otras áreas de composición de secuencias de caracteres, el enfoque Unicode prefiere la flexibilidad de componer fracciones combinando caracteres. En este caso, para crear fracciones, se combinan números con el carácter de barra de fracción (U+2044). Como ejemplo de la flexibilidad que ofrece este enfoque, el UCS incluye diecinueve caracteres de fracción precompuestos. Sin embargo, existe una infinidad de fracciones posibles. Mediante el uso de caracteres de composición, la infinidad de fracciones se maneja con 11 caracteres (0-9 y la barra de fracción). Ningún conjunto de caracteres podría incluir puntos de código para cada fracción precompuesta. Idealmente, un sistema de texto debería presentar los mismos glifos para una fracción, ya sea una de las fracciones precompuestas (como ⅓ ) o una secuencia de caracteres de composición (como 1⁄3 ). Sin embargo, los navegadores web no suelen ser tan sofisticados en el manejo de Unicode y texto. De este modo, se garantiza que las fracciones precompuestas y las fracciones de secuencia de combinación aparezcan compatibles unas junto a otras.
- Flechas .
- Matemático .
- Formas geométricas .
- Informática heredada .
- Imágenes de control Representaciones gráficas de muchos caracteres de control.
- Dibujo de caja .
- Elementos de bloque .
- Patrones Braille .
- Reconocimiento óptico de caracteres .
- Técnico .
- Tontos .
- Símbolos varios .
- Emoticonos .
- Símbolos y pictogramas .
- Símbolos alquímicos .
- Piezas de juegos (ajedrez, damas, go, dados, dominó, mahjong, cartas y muchas otras).
- Símbolos de ajedrez
- Tai Xuan Jing .
- Símbolos del hexagrama Yijing .
- CJK . Dedicado a los ideogramas y otros caracteres para apoyar los idiomas de China, Japón, Corea (CJK), Taiwán, Vietnam y Tailandia.
- Radicales y trazos .
- Ideogramas . La mayor parte del UCS está dedicada a los ideogramas utilizados en las lenguas del este de Asia. Si bien la representación de estos ideogramas mediante glifos ha variado en las lenguas que los emplean, el UCS unifica estos caracteres Han en lo que Unicode denomina Unihan (por Han Unificado). Con Unihan, el software de maquetación debe trabajar conjuntamente con las fuentes disponibles y estos caracteres Unicode para generar el glifo adecuado para cada idioma. A pesar de la unificación de estos caracteres, el UCS aún incluye más de 101 000 ideogramas Unihan.
- Notación musical .
- Taquigrafías de Duployan .
- Rotulación Sutton .
- Caracteres de compatibilidad . Varios bloques del UCS están dedicados casi exclusivamente a caracteres de compatibilidad. Estos caracteres se incluyen para dar soporte a sistemas de procesamiento de texto antiguos que no distinguen entre caracteres y glifos como lo hace Unicode. Por ejemplo, muchas letras árabes se representan con un glifo diferente cuando aparecen al final de una palabra que cuando aparecen al principio. El enfoque de Unicode prefiere que estas letras se asignen al mismo carácter para facilitar el procesamiento y almacenamiento interno del texto. Para complementar este enfoque, el software de texto debe seleccionar diferentes variantes de glifos para la visualización del carácter según su contexto. Se incluyen más de 4000 caracteres por motivos de compatibilidad.
- Controlar personajes .
- Sustitutos . El UCS incluye 2048 puntos de código en el Plano Multilingüe Básico (BMP) para pares de puntos de código sustitutos. Estos sustitutos permiten direccionar cualquier punto de código en los otros dieciséis planos mediante dos puntos de código sustitutos. Esto proporciona un método integrado sencillo para codificar el UCS de 20,1 bits dentro de una codificación de 16 bits como UTF-16. De esta forma, UTF-16 puede representar cualquier carácter dentro del BMP con una sola palabra de 16 bits. Los caracteres fuera del BMP se codifican utilizando dos palabras de 16 bits (4 octetos o bytes en total) mediante los pares de sustitutos.
- Uso privado . El consorcio proporciona varios bloques y planos de uso privado a los que se pueden asignar caracteres dentro de diversas comunidades, así como proveedores de sistemas operativos y fuentes tipográficas.
- No caracteres . El consorcio garantiza que a ciertos puntos de código nunca se les asignará un carácter y los denomina puntos de código no caracteres . Estos incluyen el rango U+FDD0..U+FDEF y los dos últimos puntos de código de cada plano (que terminan en los dígitos hexadecimales FFFE y FFFF). [ 3 ]
Personajes de propósito especial
Unicode codifica más de cien mil caracteres. La mayoría de ellos representan grafemas para su procesamiento como texto lineal. Sin embargo, algunos no representan grafemas o, como tales, requieren un tratamiento especial. [ 4 ] [ 5 ] A diferencia de los caracteres de control ASCII y otros caracteres incluidos para las capacidades de ida y vuelta heredadas, estos otros caracteres de propósito especial dotan al texto plano de una semántica importante.
Algunos caracteres especiales pueden alterar la disposición del texto, como el separador de ancho cero y el separador de ancho cero , mientras que otros no afectan en absoluto la disposición del texto, sino la forma en que las cadenas de texto se intercalan, se comparan o se procesan de otro modo. Otros caracteres especiales, como los caracteres matemáticos invisibles , generalmente no afectan la representación del texto, aunque el software de maquetación avanzado puede ajustar sutilmente el espaciado a su alrededor.
Unicode no especifica la división del trabajo entre la fuente y el software de maquetación (o "motor") al renderizar texto Unicode. Dado que los formatos de fuente más complejos, como OpenType o Apple Advanced Typography , permiten la sustitución contextual y el posicionamiento de glifos, un motor de maquetación simple podría depender completamente de la fuente para todas las decisiones de selección y colocación de glifos. En la misma situación, un motor más complejo podría combinar información de la fuente con sus propias reglas para lograr su propia idea de la mejor representación. Para implementar todas las recomendaciones de la especificación Unicode, un motor de texto debe estar preparado para trabajar con fuentes de cualquier nivel de sofisticación, ya que las reglas de sustitución contextual y posicionamiento no existen en algunos formatos de fuente y son opcionales en el resto. La barra de fracción es un ejemplo: las fuentes complejas pueden o no proporcionar reglas de posicionamiento en presencia del carácter de barra de fracción para crear una fracción, mientras que las fuentes en formatos simples no pueden.
Marca de orden de bytes
Cuando aparece al principio de un archivo de texto o flujo, U+FEFF ZERO WIDTH NO-BREAK SPACE da pistas sobre la forma de codificación y su orden de bytes.
Si el primer byte del flujo es 0xFE y el segundo 0xFF, es poco probable que el texto del flujo esté codificado en UTF-8 , ya que esos bytes no son válidos en UTF-8. Tampoco es probable que sea UTF-16 en orden de bytes little-endian, porque 0xFE, 0xFF leído como una palabra little-endian de 16 bits sería U+FFFE, lo cual no tiene sentido. La secuencia tampoco tiene sentido en ninguna disposición de codificación UTF-32 , por lo que, en resumen, sirve como una indicación bastante fiable de que el flujo de texto está codificado como UTF-16 en orden de bytes big-endian . Por el contrario, si los dos primeros bytes son 0xFF, 0xFE, entonces se puede asumir que el flujo de texto está codificado como UTF-16LE porque, leído como un valor little-endian de 16 bits, los bytes producen la marca de orden de bytes esperada 0xFEFF. Sin embargo, esta suposición se vuelve cuestionable si los dos bytes siguientes son ambos 0x00; o bien el texto comienza con un carácter nulo (U+0000), o la codificación correcta es en realidad UTF-32LE, en la que la secuencia completa de 4 bytes FF FE 00 00 es un solo carácter, el BOM.
La secuencia UTF-8 correspondiente a U+FEFF es 0xEF, 0xBB, 0xBF. Esta secuencia no tiene significado en otras formas de codificación Unicode, por lo que puede servir para indicar que ese flujo está codificado como UTF-8.
La especificación Unicode no exige el uso de marcas de orden de bytes en flujos de texto. Además, establece que no deben utilizarse cuando ya se esté empleando otro método para indicar la codificación.
Invisibles matemáticos
Principalmente en matemáticas, el Separador Invisible (U+2063) proporciona un separador entre caracteres donde se puede omitir la puntuación o el espacio, como en un índice bidimensional como ij. Los caracteres Multiplicador Invisible (U+2062) y Aplicación de Función (U+2061) son útiles en textos matemáticos donde la multiplicación de términos o la aplicación de una función se sobreentiende sin ningún glifo que indique la operación. Unicode 5.1 también introduce el carácter Más Invisible Matemático (U+2064), que puede indicar que un número entero seguido de una fracción debe denotar su suma, pero no su producto.
Fracción barra


El carácter U+2044 / FRACTION SLASH tiene un comportamiento especial en el estándar Unicode: [ 6 ]
La forma estándar de una fracción construida con la barra de fracción se define de la siguiente manera: cualquier secuencia de uno o más dígitos decimales (Categoría general = Nd), seguida de la barra de fracción, seguida de cualquier secuencia de uno o más dígitos decimales. Dicha fracción debe mostrarse como una unidad, como ¾ . Si el software de visualización no puede asignar la fracción a una unidad, también puede mostrarse como una secuencia lineal simple como alternativa (por ejemplo, 3/4). Si la fracción debe separarse de un número anterior, se puede usar un espacio, eligiendo el ancho apropiado (normal, delgado, ancho cero, etc.). Por ejemplo, 1 + ESPACIO DE ANCHO CERO + 3 + BARRA DE FRACCIÓN + 4 se muestra como 1¾ .
Siguiendo esta recomendación de Unicode, los sistemas de procesamiento de texto generan símbolos complejos a partir de texto plano. En este caso, la presencia de la barra diagonal indica al motor de maquetación que sintetice una fracción a partir de todos los dígitos consecutivos que la preceden y la siguen. En la práctica, los resultados varían debido a la compleja interacción entre las fuentes y los motores de maquetación. Los motores de maquetación de texto sencillos tienden a no sintetizar fracciones y, en su lugar, dibujan los glifos como una secuencia lineal, tal como se describe en el esquema de reserva de Unicode.
Los motores de maquetación más sofisticados se enfrentan a dos opciones prácticas: seguir la recomendación de Unicode o basarse en las instrucciones de la propia fuente para la síntesis de fracciones. Al ignorar las instrucciones de la fuente, el motor de maquetación garantiza el comportamiento recomendado por Unicode. Al seguir las instrucciones de la fuente, el motor de maquetación logra una mejor tipografía, ya que la ubicación y la forma de los dígitos se ajustan a esa fuente y tamaño específicos.
El problema de seguir las instrucciones de la fuente radica en que los formatos más sencillos no permiten especificar el comportamiento de síntesis de fracciones. Por otro lado, los formatos más complejos no requieren que la fuente especifique dicho comportamiento, por lo que muchos no lo hacen. La mayoría de las fuentes de formatos complejos pueden indicar al motor de maquetación que reemplace una secuencia de texto plano, como 1⁄2 , con el glifo precompuesto ½ . Sin embargo, dado que muchas de ellas no emiten instrucciones para sintetizar fracciones, una cadena de texto plano como 221⁄225 podría representarse como 22½25 (donde ½ es la fracción precompuesta sustituida, en lugar de la sintetizada). Ante este tipo de problemas, quienes deseen confiar en el comportamiento Unicode recomendado deberían elegir fuentes que sinteticen fracciones o software de maquetación que produzca el comportamiento Unicode recomendado, independientemente de la fuente.
Formato neutro bidireccional
La dirección de escritura se refiere a la posición de los glifos en la página con respecto al orden de los caracteres en la cadena Unicode. El inglés y otros idiomas con escritura latina se escriben de izquierda a derecha. Varios sistemas de escritura importantes, como el árabe y el hebreo , se escriben de derecha a izquierda. La especificación Unicode asigna un tipo direccional a cada carácter para indicar a los procesadores de texto cómo deben ordenarse las secuencias de caracteres en la página.
Si bien los caracteres léxicos (es decir, las letras) suelen ser específicos de un único sistema de escritura, algunos símbolos y signos de puntuación se utilizan en varios. Unicode podría haber creado símbolos duplicados en el repertorio que solo se diferenciaran por su direccionalidad, pero optó por unificarlos y asignarles una direccionalidad neutra. Estos adquieren su direccionalidad en el momento de la representación a partir de los caracteres adyacentes. Algunos de estos caracteres también poseen la propiedad de simetría bidireccional, que indica que el glifo debe representarse en espejo cuando se utiliza en texto de derecha a izquierda.
El tipo direccional en tiempo de renderizado de un carácter neutro puede permanecer ambiguo cuando la marca se coloca en el límite entre cambios de dirección. Para solucionar esto, Unicode incluye caracteres que tienen una direccionalidad fuerte, no tienen ningún glifo asociado y son ignorados por los sistemas que no procesan texto bidireccional:
- U+061C MARCA DE LETRA ÁRABE
- U+200E MARCA DE IZQUIERDA A DERECHA
- U+200F MARCA DE DERECHA A IZQUIERDA
Si se rodea un carácter bidireccionalmente neutro con la marca de izquierda a derecha, se le obligará a comportarse como tal, mientras que si se rodea con la marca de derecha a izquierda, se le obligará a comportarse como tal. El comportamiento de estos caracteres se detalla en el Algoritmo Bidireccional de Unicode.
formato general bidireccional
Si bien Unicode está diseñado para manejar múltiples idiomas, múltiples sistemas de escritura e incluso texto que fluye de izquierda a derecha o de derecha a izquierda con una mínima intervención del autor, existen circunstancias especiales en las que la combinación de texto bidireccional puede volverse compleja, lo que requiere un mayor control por parte del autor. Para estas circunstancias, Unicode incluye otros cinco caracteres para controlar la compleja incrustación de texto de izquierda a derecha dentro de texto de derecha a izquierda y viceversa:
Formato bidireccional
- U+202A INCRUSTACIÓN DE IZQUIERDA A DERECHA
- U+202B INCRUSTACIÓN DE DERECHA A IZQUIERDA
- FORMATO DIRECCIONAL U+202C POP
- U+202D ANULACIÓN DE IZQUIERDA A DERECHA
- U+202E ANULACIÓN DE DERECHA A IZQUIERDA
- U+2066 AISLAMIENTO DE IZQUIERDA A DERECHA
- U+2067 AISLAMIENTO DE DERECHA A IZQUIERDA
- U+2068 PRIMER AISLADO FUERTE
- U+2069 POP AISLADO DIRECCIONAL
Caracteres de anotación interlineal
- ANCLAJE DE ANOTACIÓN INTERLINEAL U+FFF9
- SEPARADOR DE ANOTACIÓN INTERLINEAL U+FFFA
- TERMINADOR DE ANOTACIÓN INTERLINEAL U+FFFB
Específico del script
- Control de formato con prefijo
- U+0600 SIGNO DE NÚMERO ÁRABE
- U+0601 SEÑAL ÁRABE SANAH
- U+0602 , MARCADOR DE NOTA AL PIE EN ÁRABE
- U+0603 SIGNO ÁRABE SAFHA
- U+0604 SIGNO ÁRABE SAMVAT
- U+0605 MARCA DE NÚMERO ÁRABE ARRIBA
- U+06DD FINAL DEL VERSÍCULO ÁRABE
- U+070F MARCA DE ABREVIATURA SIRIACA
- U+0890 MARCA DE LIBRA ARÁBICA ARRIBA
- U+0891 MARCA DE PIASTRA ÁRABE ARRIBA
- U+110BD KAITHI SIGNO DE NÚMERO
- U+110CD SIGNO DE NÚMERO KAITHI ARRIBA
- Jeroglíficos egipcios
- U+13430 JEROGLIFO EGIPCIO UNIÓN VERTICAL
- U+13431 JEROGLIFO EGIPCIO UNIÓN HORIZONTAL
- U+13432 JEROGLIFO EGIPCIO INSERTAR EN LA PARTE SUPERIOR INICIO
- U+13433 JEROGLIFO EGIPCIO INSERTAR EN LA PARTE INFERIOR INICIO
- U+13434 JEROGLIFO EGIPCIO INSERTAR EN EL EXTREMO SUPERIOR
- U+13435 JEROGLIFO EGIPCIO INSERTAR EN EL EXTREMO INFERIOR
- U+13436 SUPERPOSICIÓN DE JEROGLIFOS EGIPCIOS MEDIO
- U+13437 JEROGLIFO EGIPCIO COMIENZA SEGMENTO
- U+13438 JEROGLIFO EGIPCIO SEGMENTO FINAL
- U+13439 JEROGLIFO EGIPCIO INSERTAR EN EL CENTRO
- U+1343A JEROGLIFO EGIPCIO INSERTAR EN LA PARTE SUPERIOR
- U+1343B JEROGLIFO EGIPCIO INSERTAR EN LA PARTE INFERIOR
- U+1343C JEROGLIFO EGIPCIO COMIENZA EL RECINTO
- U+1343D JEROGLIFOS EGIPCIOS RECINTO FINAL
- U+1343E JEROGLIFO EGIPCIO COMIENZA RECINTO AMURALLADO
- U+1343F RECINTO AMURALLADO CON JEROGLIFOS EGIPCIOS
- Brahmi
- U+1107F 𑁿 CONECTOR DE NÚMERO BRAHMI
Caracteres frente a puntos de código
El término «carácter» no está bien definido, y generalmente nos referimos al grafema . Un grafema se representa visualmente mediante su glifo . La tipografía (a menudo denominada erróneamente fuente ) puede mostrar variaciones visuales del mismo carácter. Es posible que dos grafemas diferentes tengan exactamente el mismo glifo o que sean tan similares visualmente que el lector promedio no pueda distinguirlos.
Un grafema casi siempre está representado por un punto de código; por ejemplo, la letra mayúscula latina "a" está representada por el punto de código U+0041.
El grafema U+00C4 Ä LETRA MAYÚSCULA LATINA A CON DIÉRESIS es un ejemplo donde un carácter puede ser representado por más de un punto de código. Puede representarse como U+00C4, o como la secuencia U+0041 A LETRA MAYÚSCULA LATINA A y U+0308 ◌ ̈ COMBINANDO DIÉRESIS .
Cuando una marca de combinación está adyacente a un punto de código de marca no combinativa, las aplicaciones de representación de texto deben superponer la marca de combinación sobre el glifo representado por el otro punto de código para formar un grafema de acuerdo con un conjunto de reglas. [ 7 ]
Por lo tanto, la palabra BÄM constaría de tres grafemas. Podría estar compuesta por tres puntos de código o más, dependiendo de cómo se compongan realmente los caracteres.
Espacios en blanco, conectores y separadores
Unicode proporciona una lista de caracteres que considera caracteres de espacio en blanco para garantizar la interoperabilidad. Las implementaciones de software y otros estándares pueden usar el término para denotar un conjunto de caracteres ligeramente diferente. Por ejemplo, Java no considera U+00A0 NO-BREAK SPACE ni U+0085 <control-0085>. (SIGUIENTE LÍNEA) para ser espacio en blanco, aunque Unicode lo haga. Los caracteres de espacio en blanco son caracteres que normalmente se designan para entornos de programación. A menudo no tienen significado sintáctico en dichos entornos de programación y son ignorados por los intérpretes de máquina. Unicode designa los caracteres de control heredados U+0009 a U+000D y U+0085 como caracteres de espacio en blanco, así como todos los caracteres cuyo valor de propiedad de Categoría general es Separador. Hay un total de 25 caracteres de espacio en blanco a partir de Unicode 17.0 .
Unedores y no unedores de grafemas
U+200D ZERO WIDTH JOINER y U+200C ZERO WIDTH NON-JOINER controlan la unión y ligadura de glifos. El conector no hace que los caracteres que de otro modo no se unirían o ligarían lo hagan, pero cuando se combina con el no conector, estos caracteres pueden usarse para controlar las propiedades de unión y ligadura de los dos caracteres de unión o ligadura circundantes. El U+034F ͏ COMBINING GRAPHEME JOINER se usa para distinguir dos caracteres base como una base común o dígrafo, principalmente para el procesamiento de texto subyacente, la intercalación de cadenas, el plegado de mayúsculas y minúsculas, etc.
Conectores y separadores de palabras
El separador de palabras más común es U+0020 ESPACIO . Sin embargo, existen otros conectores y separadores de palabras que también indican una separación entre palabras y participan en algoritmos de salto de línea. U+00A0 ESPACIO SIN SALTO también produce un avance de línea base sin glifo, pero inhibe en lugar de habilitar un salto de línea. U+200B ESPACIO DE ANCHO CERO permite un salto de línea pero no proporciona espacio: en cierto sentido, une, en lugar de separar, dos palabras. Finalmente, U+2060 CONECTOR DE PALABRAS inhibe los saltos de línea y tampoco implica ningún espacio en blanco producido por un avance de línea base.
Otros separadores
- Separador de línea (U+2028)
- Separador de párrafo (U+2029)
Estos proporcionan a Unicode separadores de párrafo y línea nativos, independientes de los caracteres de control ASCII codificados heredados, como el retorno de carro (U+000A), el salto de línea (U+000D) y la siguiente línea (U+0085). Unicode no proporciona otros caracteres de control de formato ASCII que, presumiblemente, no forman parte del modelo de procesamiento de texto plano de Unicode. Estos caracteres de control de formato heredados incluyen U+0009 <control-0009>.(TAB) , U+000B <control-000B>(TAB VERTICAL) y salto de página (U+000C), que también se considera un salto de página.
Espacios
El carácter de espacio (U+0020), que normalmente se introduce con la barra espaciadora del teclado, funciona semánticamente como separador de palabras en muchos idiomas. Por motivos de compatibilidad, el UCS también incluye espacios de distintos tamaños que son equivalentes al carácter de espacio. Si bien estos espacios de ancho variable son importantes en tipografía, el modelo de procesamiento Unicode exige que estos efectos visuales se gestionen mediante texto enriquecido, marcado y otros protocolos similares. Se incluyen en el repertorio Unicode principalmente para gestionar la transcodificación de ida y vuelta sin pérdidas desde otras codificaciones de conjuntos de caracteres. Estos espacios incluyen:
- U+2000 EN CUADRADO
- U+2001 EM QUAD
- U+2002 EN ESPACIO
- U+2003 ESPACIO EM
- U+2004 ESPACIO TRES POR EM
- U+2005 ESPACIO CUATRO POR EM
- U+2006 ESPACIO SEIS POR EM
- U+2007 FIGURA ESPACIO
- U+2008 ESPACIO DE PUNTUACIÓN
- U+2009 ESPACIO DELGADO
- U+200A ESPACIO PARA EL CABELLO
- U+205F ESPACIO MATEMÁTICO MEDIO
Aparte del espacio ASCII original, los demás espacios son caracteres de compatibilidad. En este contexto, esto significa que no añaden contenido semántico al texto, sino que proporcionan control de estilo. Dentro de Unicode, este control de estilo no semántico se suele denominar texto enriquecido y queda fuera de los objetivos principales de Unicode. En lugar de utilizar diferentes espacios en distintos contextos, este estilo debería gestionarse mediante software de maquetación de texto inteligente.
Otros tres separadores de palabras específicos de cada sistema de escritura son:
- U+180E SEPARADOR DE VOCALES MONGOLIO
- ESPACIO IDEOGRÁFICO U+3000 : se comporta como un separador ideográfico y generalmente se representa como un espacio en blanco del mismo ancho que un ideograma.
- U+1680 MARCA ESPACIAL OGHAM : este carácter a veces se muestra con un glifo y otras veces solo como un espacio en blanco.
Caracteres de control de salto de línea
Existen varios caracteres diseñados para controlar los saltos de línea, ya sea impidiéndolos (caracteres de no salto) o sugiriéndolos, como el guion suave (U+00AD) (a veces llamado «guion tímido»). Si bien estos caracteres están diseñados para dar formato, probablemente sean indispensables para los complejos tipos de saltos de línea que permiten.
- Inhibidor de rotura
- U+2011 - GUION SIN INTERRUPCIÓN
- U+00A0 ESPACIO SIN INTERRUPCIÓN
- U+0F0C ༌ DELIMITADOR DE MARCA TIBETANA TSHEG BSTAR
- U+202F ESPACIO ESTRECHO SIN INTERRUPCIONES
Los caracteres que impiden el salto de línea están diseñados para ser equivalentes a una secuencia de caracteres encerrada entre el carácter de unión de palabras U+2060. Sin embargo, este carácter puede añadirse antes o después de cualquier carácter que permita un salto de línea para impedir dicho salto.
- Habilitación de ruptura
- U+00AD GUION SUAVE
- U+0F0B ་ MARCA TIBETANA TSHEG INTERSILÁBICA
- U+200B ESPACIO DE ANCHO CERO
Tanto los caracteres que inhiben como los que permiten la división de líneas participan junto con otros caracteres de puntuación y espacios en blanco para permitir que los sistemas de procesamiento de imágenes de texto determinen los saltos de línea dentro del algoritmo de división de líneas Unicode. [ 8 ]
Tipos de puntos de código
Todos los puntos de código a los que se les asigna algún propósito o uso se consideran puntos de código designados. De estos, pueden estar asignados a un carácter abstracto o designados para algún otro propósito.
Caracteres asignados
La mayoría de los puntos de código en uso se han asignado a caracteres abstractos. Esto incluye caracteres de uso privado que, si bien no están formalmente designados por el estándar Unicode para un propósito específico, requieren que el emisor y el receptor hayan acordado previamente cómo deben interpretarse para que se produzca un intercambio de información significativo.
Personajes de uso privado
El UCS incluye 137.468 caracteres de uso privado, que son puntos de código para uso privado distribuidos en tres bloques diferentes, cada uno denominado Área de Uso Privado (PUA). El estándar Unicode reconoce los puntos de código dentro de las PUA como códigos de caracteres Unicode legítimos, pero no les asigna ningún carácter (abstracto). En cambio, individuos, organizaciones, proveedores de software, proveedores de sistemas operativos, proveedores de fuentes y comunidades de usuarios finales son libres de usarlos como mejor les parezca. Dentro de sistemas cerrados, los caracteres en la PUA pueden operar sin ambigüedad, lo que permite que dichos sistemas representen caracteres o glifos no definidos en Unicode. [ 9 ] En sistemas públicos su uso es más problemático, ya que no existe un registro ni forma de evitar que varias organizaciones adopten los mismos puntos de código para diferentes propósitos. Un ejemplo de tal conflicto es el uso que hace Apple de U+F8FF para el logotipo de Apple , frente al uso que hace el Registro Unicode de ConScript de U+F8FF como glifo de momificación klingon en la escritura klingon . [ 10 ]
El plano multilingüe básico (plano 0) contiene 6400 caracteres de usuario privado en el área de uso privado (PUA) homónima , que abarca desde U+E000 hasta U+F8FF. Los planos de uso privado , plano 15 y plano 16, tienen cada uno sus propias PUA de 65 534 caracteres de uso privado (los dos últimos puntos de código de cada plano no son caracteres ). Estas son el área de uso privado suplementaria A , que abarca desde U+F0000 hasta U+FFFFD, y el área de uso privado suplementaria B , que abarca desde U+100000 hasta U+10FFFD.
Las PUA son un concepto heredado de ciertos sistemas de codificación asiáticos. Estos sistemas tenían áreas de uso privado para codificar lo que los japoneses llaman gaiji (caracteres raros que normalmente no se encuentran en las fuentes) de maneras específicas para cada aplicación.
Madres sustitutas
El UCS utiliza caracteres sustitutos para dirigir caracteres fuera del plano multilingüe básico inicial sin recurrir a representaciones de palabras de más de 16 bits. [ 11 ] Hay 1024 caracteres sustitutos "altos" (D800–DBFF) y 1024 caracteres sustitutos "bajos" (DC00–DFFF). Al combinar un par de sustitutos, se pueden dirigir los caracteres restantes en todos los demás planos (1024 × 1024 = 1.048.576 puntos de código en los otros 16 planos). En UTF-16 , siempre deben aparecer en pares, como un sustituto alto seguido de un sustituto bajo, utilizando así 32 bits para denotar un punto de código.
Un par subrogado denota el punto de código
- 10000 16 + ( H - D800 16 ) × 400 16 + ( L - DC00 16 )
donde H y L son los valores numéricos de los sustitutos alto y bajo respectivamente. [ 12 ]
Dado que los valores sustitutos altos en el rango DB80–DBFF siempre producen valores en los planos de uso privado, el rango de valores sustitutos altos se puede dividir aún más en valores sustitutos altos (normales) (D800–DB7F) y "valores sustitutos altos de uso privado" (DB80–DBFF).
Los puntos de código sustituto aislados no tienen una interpretación general; por consiguiente, no se proporcionan tablas de códigos de caracteres ni listas de nombres para este rango. En el lenguaje de programación Python , los códigos sustitutos individuales se utilizan para incrustar bytes indecodificables en cadenas Unicode. [ 13 ]
No personajes
El término sin guion « noncharacter » se refiere a 66 puntos de código (etiquetados <not a character>) reservados permanentemente para uso interno y, por lo tanto, se garantiza que nunca se asignarán a un carácter. [ 14 ] Cada uno de los 17 planos tiene sus dos puntos de código finales reservados como noncharacters . Así, los noncharacters son: U+FFFE y U+FFFF en el BMP, U+1FFFE y U+1FFFF en el Plano 1, y así sucesivamente, hasta U+10FFFE y U+10FFFF en el Plano 16, para un total de 34 puntos de código. Además, hay un rango contiguo de otros 32 puntos de código noncharacter en el BMP, ubicados en Arabic Presentation Forms-A : U+FDD0..U+FDEF. Las implementaciones de software son libres de usar estos puntos de código para uso interno. Un ejemplo particularmente útil de un noncharacter es el punto de código U+FFFE. Este punto de código tiene la secuencia de bytes UTF-16/UCS-2 inversa de la marca de orden de bytes (U+FEFF). Si un flujo de texto contiene este carácter no válido , es un buen indicio de que el texto se ha interpretado con un orden de bytes incorrecto .
Las versiones del estándar Unicode desde la 3.1.0 hasta la 6.3.0 afirmaban que los caracteres que no son caracteres "nunca deberían intercambiarse". La corrección n.° 9 del estándar declaró posteriormente que esto estaba provocando un "rechazo excesivo e inapropiado", aclarando que los caracteres que no son caracteres "no son ilegales en el intercambio ni causan texto Unicode mal formado", y eliminando la afirmación original.
Puntos de código reservados
Todos los demás puntos de código, aquellos que no están designados, se consideran reservados. Estos puntos de código pueden asignarse para un uso específico en futuras versiones del estándar Unicode.
Caracteres, grupos de grafemas y glifos
Mientras que muchos otros conjuntos de caracteres asignan un carácter a cada posible representación de glifo del carácter, Unicode busca tratar los caracteres por separado de los glifos. Esta distinción no siempre es inequívoca; sin embargo, algunos ejemplos ayudarán a ilustrarla. A menudo, dos caracteres se combinan tipográficamente para mejorar la legibilidad del texto. Por ejemplo, la secuencia de tres letras "ffi" puede tratarse como un solo glifo. Otros conjuntos de caracteres suelen asignar un punto de código a este glifo, además de a las letras individuales: "f" e "i".
Además, Unicode trata las letras modificadas con diacríticos como caracteres separados que, al representarse, se convierten en un solo glifo. Por ejemplo, una "o" con diéresis : " ö ". Tradicionalmente, otros conjuntos de caracteres asignaban un punto de código único para cada letra modificada con diacríticos utilizada en cada idioma. Unicode busca crear un enfoque más flexible al permitir la combinación de caracteres diacríticos con cualquier letra. Esto tiene el potencial de reducir significativamente la cantidad de puntos de código activos necesarios para el conjunto de caracteres. Como ejemplo, consideremos un idioma que utiliza el alfabeto latino y combina la diéresis con las letras mayúsculas y minúsculas "a", "o" y "u". Con el enfoque de Unicode, solo es necesario agregar el carácter diacrítico de diéresis al conjunto de caracteres para usarlo con las letras latinas: "a", "A", "o", "O", "u" y "U": siete caracteres en total. Un conjunto de caracteres antiguo necesita agregar seis letras precompuestas con diéresis, además de los seis puntos de código que usa para las letras sin diéresis: doce puntos de código de caracteres en total.
Caracteres de compatibilidad
UCS incluye miles de caracteres que Unicode designa como caracteres de compatibilidad. Estos caracteres se incluyeron en UCS para proporcionar puntos de código distintos para caracteres que otros conjuntos de caracteres diferencian, pero que no se diferenciarían en el enfoque Unicode para los caracteres.
La principal razón de esta diferenciación radica en que Unicode distingue entre caracteres y glifos. Por ejemplo, al escribir inglés en cursiva , la letra "i" puede adoptar diferentes formas según aparezca al principio, al final o en medio de una palabra, o incluso aislada. Idiomas como el árabe , escritos siempre en cursiva, tienen múltiples formas. El sistema de caracteres Unicode (UCS) incluye 730 caracteres árabes que, al descomponerse, se reducen a tan solo 88 caracteres árabes únicos. Estos caracteres adicionales se incluyen para que el software de procesamiento de texto pueda traducir texto de otros conjuntos de caracteres al UCS y viceversa sin perder información crucial para el software que no utiliza Unicode.
Sin embargo, para UCS y Unicode en particular, el enfoque preferido consiste en codificar o asignar siempre la misma letra al mismo carácter, independientemente de su posición en la palabra. Las distintas formas de cada letra se determinan mediante los métodos del software de fuente y maquetación. De esta forma, la memoria interna de los caracteres permanece idéntica, sin importar su ubicación en la palabra. Esto simplifica enormemente la búsqueda, la clasificación y otras operaciones de procesamiento de texto.
Propiedades de los caracteres
Cada carácter en Unicode se define mediante un conjunto de propiedades amplio y en constante crecimiento. La mayoría de estas propiedades no forman parte del Conjunto Universal de Caracteres (UCC). Las propiedades facilitan el procesamiento de texto, incluyendo la intercalación o clasificación del texto, la identificación de palabras, oraciones y grafemas, la representación gráfica del texto, etc. A continuación se muestra una lista de algunas de las propiedades principales. Existen muchas otras documentadas en la Base de Datos de Caracteres Unicode. [ 15 ]
Unicode proporciona una base de datos en línea [ 21 ] para consultar de forma interactiva todo el repertorio de caracteres Unicode por sus diversas propiedades.
Véase también
Referencias
- ↑ "El estándar Unicode" . El Consorcio Unicode . Consultado el 9 de agosto de 2016 .
- ↑ "Hojas de ruta hacia Unicode" . El Consorcio Unicode . Consultado el 11 de septiembre de 2025 .
- ↑ "Preguntas frecuentes: caracteres, no caracteres y centinelas de uso privado" . www.unicode.org . Consultado el 24 de octubre de 2023 .
- ↑ "Sección 2.13: Caracteres especiales" . El estándar Unicode . El Consorcio Unicode. Septiembre de 2025.
- ↑ «Sección 4.12: Caracteres con propiedades inusuales» . El estándar Unicode . El Consorcio Unicode. Septiembre de 2025.
- ↑ "Otros signos de puntuación" . El estándar Unicode . El Consorcio Unicode. Septiembre de 2025.
- ↑ "UTN #2: Un método general para representar marcas de combinación" . www.unicode.org . Consultado el 16 de diciembre de 2020 .
- ↑ "UAX #14: Algoritmo de salto de línea Unicode" . El Consorcio Unicode. 1 de junio de 2016. Consultado el 9 de agosto de 2016 .
- ↑ «Sección 23.5: Caracteres de uso privado» (PDF) . El estándar Unicode . El Consorcio Unicode. Septiembre de 2022.
- ↑ Michael Everson (15 de enero de 2004). "Klingon: U+F8D0 - U+F8FF" .
- ↑ "Sección 23.6: Área de sustitutos" (PDF) . El estándar Unicode . El Consorcio Unicode. Septiembre de 2022.
- ↑ Kaplan, Michael. "Soporte sustituto en productos de Microsoft" .
- ↑ v. Löwis, Martin (22 de abril de 2009). "Bytes no decodificables en interfaces de caracteres del sistema" . Propuestas de mejora de Python . PEP 383. Consultado el 9 de agosto de 2016 .
- ↑ «Sección 23.7: No caracteres» (PDF) . El estándar Unicode . El Consorcio Unicode. Septiembre de 2022.
- ↑ "Base de datos de caracteres Unicode" . El Consorcio Unicode . Consultado el 9 de agosto de 2016 .
- ↑ Freytag, Asmus; McGowan, Rick; Whistler, Ken. "Nota técnica Unicode n.º 27: anomalías conocidas en los nombres de caracteres Unicode" . Consorcio Unicode.
- ↑ No es el glifo representativo oficial de Unicode, sino simplemente un glifo representativo. Para ver el glifo representativo oficial de Unicode, consulte las tablas de códigos .
- ↑ "Tablas de códigos de caracteres" . El Consorcio Unicode . Consultado el 9 de agosto de 2016 .
- ↑ "UAX #44: Base de datos de caracteres Unicode" . Valores de categoría general . El Consorcio Unicode. 5 de junio de 2014. Consultado el 9 de agosto de 2016 .
- ↑ Davis, Mark; Iancu, Laurențiu; Whistler, Ken. "Tabla 9. Tabla de propiedades § PropList.txt" . Anexo estándar Unicode n.º 44 — Base de datos de caracteres Unicode . Consorcio Unicode.
- ↑ "Utilidades Unicode: Índice de propiedades de caracteres" . El Consorcio Unicode . Consultado el 9 de junio de 2015 .
Enlaces externos
- Consorcio Unicode
- decodeunicode.org Wiki de Unicode con los 98884 caracteres gráficos de Unicode 5.0 en formato GIF y búsqueda de texto completo.
- Caracteres Unicode por propiedad