Unicode es un estándar de codificación de caracteres diseñado para facilitar el tratamiento informático, transmisión y visualización de textos de numerosos idiomas y disciplinas técnicas, además de textos clásicos de lenguas muertas. El término Unicode proviene de los tres objetivos perseguidos: universalidad, uniformidad, y unicidad.
Unicode define cada carácter o símbolo mediante un nombre e identificador numérico, el punto de código (code point). Además incluye otras informaciones para el uso correcto de cada carácter, como sistema de escritura, categoría, direccionalidad, mayúsculas y otros atributos. Unicode trata los caracteres alfabéticos, ideográficos y símbolos de forma equivalente, lo que significa que se pueden mezclar en un mismo texto sin utilizar marcas ni caracteres de control.
Este estándar es mantenido por el Unicode Technical Committee (UTC), integrado en el Consorcio Unicode, del que forman parte con distinto grado de implicación empresas como Microsoft, Apple, Adobe, IBM, Oracle, SAP, Google y Facebook, instituciones como la Universidad de Berkeley y el Gobierno de la India y profesionales y académicos a título individual. El Unicode Consortium mantiene estrecha relación con ISO/IEC, con la que mantiene desde 1991 el acuerdo de sincronizar sus estándares que contienen los mismos caracteres y puntos de código.
La creación de Unicode ha sido un proyecto de gran relevancia con el objetivo de reemplazar los esquemas de codificación de caracteres existentes, los cuales presentaban limitaciones significativas en tamaño y compatibilidad con entornos plurilingües. Unicode se ha convertido en el esquema de codificación de caracteres más completo y extenso, siendo el dominante en la internacionalización y adaptación local del software informático. Este estándar ha sido ampliamente adoptado en diversas tecnologías recientes, como XML, Java y sistemas operativos modernos.
La descripción exhaustiva del estándar y las tablas de caracteres están disponibles en el sitio web oficial de Unicode. Cada vez que se finaliza una nueva versión principal, se pública una referencia completa en formato de libro, también está disponible en su versión digital de manera gratuita. Las revisiones y adiciones se publican de manera independiente.
Alcance del estándar Unicode engloba todos los caracteres de uso común en la actualidad. La versión 17.0, por ejemplo, cuenta con 159.801 caracteres provenientes de diversos alfabetos, sistemas ideográficos y colecciones de símbolos, como aquellos utilizados en matemáticas, tecnología, música e iconografía. Esta cifra continúa aumentando en cada nueva versión.
Unicode abarca una amplia gama de sistemas de escritura modernos, como el alfabeto latino, así como escrituras históricas extintas, utilizadas con fines académicos, tales como el cuneiforme y el rúnico. Además de los caracteres alfabéticos, Unicode también incluye una variedad de caracteres no alfabéticos, como símbolos musicales y matemáticos, fichas de juegos como el dominó, flechas, iconos, etc.
Además, Unicode incluye los signos diacríticos como caracteres individuales que pueden combinarse con otros caracteres, también ofrece versiones predefinidas de la mayoría de las letras con símbolos diacríticos utilizados en la actualidad, como las vocales acentuadas del español.
Unicode es un estándar en constante evolución, y se agregan nuevos caracteres de forma continua. Sin embargo, también se descartan ciertos alfabetos propuestos por diversas razones, como es el caso del alfabeto klingon.
Relación con otros estándares
Unicode está sincronizado con el estándar ISO/IEC conocido como UCS o Juego de Caracteres Universal. Desde un punto de vista técnico, Unicode incluye o es compatible con codificaciones previas como ASCII7 e ISO 8859-1, así como con estándares nacionales como ANSI Z39.64, KS X 1001, JIS X 0208, JIS X 0212, JIS X 0213, GB 2312, GB 18030, HKSCS y CNS 11643, codificaciones particulares de fabricantes de software como Apple, Adobe, Microsoft, IBM, etc. Además, Unicode reserva espacio para que los fabricantes de software puedan crear extensiones para su propio uso.
Repertorio de caracteres
El elemento básico del estándar Unicode es el carácter. Se considera un carácter al elemento más pequeño de un sistema de escritura con significado. El estándar Unicode codifica los caracteres esenciales ―grafemas― definiéndolos de forma abstracta y deja la representación visual (tamaño, dimensión, fuente, estilo) al software que lo trate, como procesadores de texto y navegadores web. Se incluyen letras, signos diacríticos, caracteres de puntuación, ideogramas, caracteres silábicos, caracteres de control y otros símbolos. Los caracteres se agrupan en alfabetos o sistemas de escritura. Se considera que son diferentes los caracteres de alfabetos distintos, aunque compartan forma y significación.
Los caracteres se identifican mediante un número o punto de código y su nombre o descripción. Cuando se ha asignado un código a un carácter, se dice que dicho carácter está codificado. El espacio para códigos tiene 1.114.112 posiciones posibles (0x10FFFF). Los puntos de código se representan utilizando notación hexadecimal agregando el prefijo U+. El valor hexadecimal se completa con ceros hasta 4 dígitos hexadecimales cuando es necesario; si es de longitud mayor que 4 dígitos no se agregan ceros.
Tipos de caracteres right|thumb|350px|Distintas versiones del carácter angstrom (versión preferida), como carácter con signo diacrítico y como símbolo con forma de letra.
Los bloques del espacio de códigos contienen puntos con la siguiente información:
Caracteres gráficos: letras, signos diacríticos, cifras, caracteres de puntuación, símbolos y espacios. Caracteres de formato: caracteres invisibles que afectan al proceso del texto próximo. Ejemplos: U+2028 salto de línea, U+2029 salto de párrafo, U+00A0 espacio duro, etc. Códigos de control: 65 códigos definidos por compatibilidad con ISO/IEC 2022. Son los caracteres entre los rangos [U+0000,U+001F], U+007F y [U+0080..U+009F]. Interpretarlos es responsabilidad de protocolos superiores. Caracteres privados: reservados para el uso fuera del estándar por fabricantes de software. Caracteres reservados: códigos reservados para su uso por Unicode. Son posiciones no asignadas. Suplentes inferiores y superiores: Unicode reserva los puntos de código de U+D800 a U+DFFF para su uso como códigos subrogados en UTF-16, en la representación de caracteres suplementarios. No caracteres: son códigos reservados permanentemente para uso interno por Unicode. Los dos últimos puntos de cada plano U+FFFE y U+FFFF.
Composición de caracteres y secuencias thumb|right|250px|Composición del carácter "ñ". La primera es un carácter independiente, la segunda una n más una virgulilla (en inglés conocida como tilde) combinable.
Unicode incluye un mecanismo para formar caracteres y así extender el repertorio de compatibilidad con los símbolos existentes. Un carácter base se complementa con marcas: signos diacríticos, de puntuación y marcos. El tipo de cada carácter y sus atributos definen el papel que pueden jugar en una combinación. Por este motivo, puede haber varias opciones que representen el mismo carácter. Para facilitar la compatibilidad con codificaciones anteriores, se proporcionan caracteres precompuestos; en la definición de dichos caracteres se hace constar qué caracteres intervienen en la composición.
Un grupo de caracteres consecutivos, independientemente de su tipo, forma una secuencia. En caso de que varias secuencias representen el mismo conjunto de caracteres esenciales, el estándar no define una de ellas como 'correcta', sino que las considera equivalentes. Para poder identificar dichas equivalencias, Unicode define los mecanismos de equivalencia canónica y de equivalencia de compatibilidad basados en la obtención de formas normalizadas de las cadenas a comparar.
Repertorio unificado chino, coreano y japonés
En el estándar Unicode, los ideogramas de Asia oriental (popularmente llamados «caracteres chinos») se denominan «ideogramas han». Estos ideogramas se desarrollaron en China y fueron adaptados por culturas próximas para su propio uso. Japón, Corea y Vietnam desarrollaron sus propios sistemas alfabéticos o silábicos para usar en combinación con los símbolos chinos: hiragana y katakana (en Japón), hangul (en Corea) y yi (en Vietnam). La evolución natural de los sistemas de escritura y los distintos momentos de entrada de los caracteres en las distintas culturas han marcado diferencias en los ideogramas utilizados. Unicode considera las distintas versiones de los ideogramas como variantes de un mismo carácter abstracto, es decir, como resultado de la aplicación de un tipo de letra diferente en cada caso y considera las variantes nacionales como pertenecientes a un mismo sistema de escritura. La versión original del estándar se desarrolló a partir de los estándares industriales existentes en los países afectados.
El organismo encargado de desarrollar el repertorio de caracteres es el Ideographic Rapporteur Group (IRG). IRG es un grupo de trabajo integrado en ISO/IEC JTC1/SC2/WG2, incluyendo a China, Hong Kong, Macao, Taipei Computer Association, Singapur, Japón, Corea del Sur, Corea del Norte, Vietnam y Estados Unidos de América.
La base de datos de caracteres CJK se denomina Unihan y contiene, además, información auxiliar sobre significado, conversiones, datos necesarios para utilizarlos en los diferentes lenguajes que los utilizan. A continuación se muestran los bloques que describen este repertorio. IRG define los caracteres de los siete grupos unificados; los dos grupos siguientes contienen caracteres para compatibilidad con estándares anteriores.
+BloquePlanoRangoCaracteresComentariosIdeogramas unificados CJK0 BMP4E00–9FFF20,992Ideogramas de uso común.Ideogramas unificados CJK - Extensión A0 BMP3400–4DBF6,592Ideogramas de uso poco habitual.Ideogramas unificados CJK - Extensión B2 SIP20000–2A6DF42,720Ideogramas de uso poco habitual e históricos.Ideogramas unificados CJK - Extensión C2 SIP2A700–2B73F4,154Ideogramas de uso poco habitual e históricos.Ideogramas unificados CJK - Extensión D2 SIP2B740–2B81F222Ideogramas de uso poco habitual e históricos.Ideogramas unificados CJK - Extensión E2 SIP2B820–2CEAF5,762Ideogramas de uso poco habitual e históricos.Ideogramas unificados CJK - Extensión F2 SIP2CEB0–2EBEF7,473Ideogramas de uso poco habitual e históricos.Ideogramas unificados CJK - Extensión G3 TIP30000–3134F4,939Ideogramas de uso poco habitual e históricos.Ideogramas unificados CJK - Extensión H3 TIP31350–323AF4,192Ideogramas de uso poco habitual e históricos.Suplemento de radicales CJK0 BMP2E80–2EFF115Variantes y componentes de los radicales Kangxi.Radicales Kangxi0 BMP2F00–2FDF214Radicales Kangxi.Caracteres de descripción ideográfica0 BMP2FF0–2FFF12Composición de ideogramas.Símbolos y puntuación CJK0 BMP3000–303F64Caracteres CJK especiales y signos de puntuación CJK.Trazos CJK0 BMP31C0–31EF36Trazos mínimos de los ideogramas.Compatibilidad CJK0 BMP3300–33FF256Caracteres CJK especiales.Ideogramas de compatibilidad CJK0 BMPF900–FAFF472Duplicados, variantes unificables y caracteres corporativos.Formatos de compatibilidad CJK0 BMPFE30–FE4F32Signos de puntuación para escritura vertical.Suplemento de ideogramas de compatibilidad CJK2 SIP2F800–2FA1F542Variantes unificables.
Secuencias de descripción ideográfica