En Unicode y UCS , un carácter de compatibilidad es un carácter codificado únicamente para mantener la convertibilidad de ida y vuelta con otros estándares, a menudo más antiguos. [1] Como dice el Glosario Unicode:
Un carácter que no se habría codificado excepto por compatibilidad y convertibilidad de ida y vuelta con otros estándares [2]
Aunque la compatibilidad se utiliza en los nombres, no está marcada como una propiedad. Sin embargo, la definición es más complicada de lo que revela el glosario. Una de las propiedades que el consorcio Unicode otorga a los caracteres es la descomposición de los caracteres o descomposición de compatibilidad . Más de cinco mil caracteres tienen una descomposición de compatibilidad que asigna ese carácter de compatibilidad a uno o más caracteres UCS. Al establecer la propiedad de descomposición de un carácter, Unicode establece ese carácter como un carácter de compatibilidad. Los motivos de estas designaciones de compatibilidad son variados y se analizan con más detalle a continuación. El término descomposición a veces resulta confuso porque la descomposición de un carácter puede, en algunos casos, ser un singleton. En estos casos, la descomposición de un carácter es simplemente otro carácter aproximadamente (pero no canónicamente) equivalente .
La propiedad de descomposición de compatibilidad para los 5.402 caracteres de compatibilidad Unicode [ ¿cuándo? ] incluye una palabra clave que divide los caracteres de compatibilidad en 17 grupos lógicos. Aquellos caracteres con una descomposición de compatibilidad pero sin una palabra clave se denominan caracteres canónicos descomponibles y esos caracteres no son caracteres de compatibilidad. Las palabras clave para caracteres descomponibles de compatibilidad incluyen: <inicial>, <medial>, <final>, <aislado>, <ancho>, <estrecho>, <pequeño>, <cuadrado>, <vertical>, <círculo>, <noBreak> , <fracción>, <sub>, <super> y <compatibilidad>. Estas palabras clave proporcionan alguna indicación de la relación entre el carácter de compatibilidad y su secuencia de caracteres de descomposición de compatibilidad. Los personajes de compatibilidad se dividen en tres categorías básicas:
Debido a que estos caracteres semánticamente distintos pueden mostrarse con glifos similares a los de otros caracteres, el software de procesamiento de texto debe intentar abordar la posible confusión por el bien de los usuarios finales. Al comparar y cotejar (clasificar) cadenas de texto, las diferentes formas y variantes de caracteres de texto enriquecido no deberían alterar los resultados del procesamiento de texto. Por ejemplo, los usuarios de software pueden confundirse al realizar una búsqueda en una página de una letra latina mayúscula 'I' y su aplicación de software no logra encontrar el número romano visualmente similar 'Ⅰ'.
Algunos caracteres de compatibilidad son completamente prescindibles para el software de visualización y procesamiento de texto que cumple con el estándar Unicode. Éstas incluyen:
El UCS, las propiedades de los caracteres Unicode y los algoritmos Unicode proporcionan implementaciones de software con todo lo necesario para mostrar correctamente estos caracteres a partir de sus equivalentes de descomposición. Por lo tanto, estos caracteres de compatibilidad descomponibles se vuelven redundantes e innecesarios. Su existencia en el juego de caracteres requiere un procesamiento de texto adicional para garantizar que el texto se compare y coteje correctamente (consulte Normalización Unicode ). Además, estos caracteres de compatibilidad no proporcionan una semántica distinta o adicional. Estos caracteres tampoco proporcionan ninguna representación visual distinta siempre que el diseño del texto y las fuentes cumplan con Unicode. Además, ninguno de estos caracteres es necesario para la convertibilidad de ida y vuelta a otros conjuntos de caracteres, ya que la transliteración puede asignar fácilmente caracteres descompuestos a contrapartes precompuestas en otro conjunto de caracteres. De manera similar, las formas contextuales, como una letra árabe final, se pueden asignar en función de su posición dentro de una palabra al carácter de forma del conjunto de caracteres heredado apropiado.
Para prescindir de estos caracteres de compatibilidad, el software de texto debe ajustarse a varios protocolos Unicode. El software debe poder:
En conjunto, estos caracteres de compatibilidad incluidos para implementaciones Unicode incompletas suman un total de 3779 de los 5402 caracteres de compatibilidad designados. Estos incluyen todos los caracteres de compatibilidad marcados con las palabras clave <inicial>, <medial>, <final>, <aislado>, <fracción>, <ancho>, <estrecho>, <pequeño>, <vertical>, <cuadrado>. . También incluye casi todos los caracteres canónicos y la mayoría de los caracteres de compatibilidad de palabras clave <compat> (las excepciones incluyen los caracteres de palabras clave <compat> para caracteres alfanuméricos adjuntos, ideogramas adjuntos y aquellos discutidos en § Caracteres semánticamente distintos).
Muchos otros caracteres de compatibilidad constituyen lo que Unicode considera texto enriquecido y, por lo tanto, están fuera de los objetivos de Unicode y UCS. En cierto sentido, incluso los caracteres de compatibilidad discutidos en la sección anterior (aquellos que ayudan al software heredado a mostrar ligaduras y texto vertical) constituyen una forma de texto enriquecido, ya que los protocolos de texto enriquecido determinan si el texto se muestra de una manera u otra. Sin embargo, la opción de mostrar texto con o sin ligaduras o verticalmente versus horizontalmente es texto enriquecido no semántico. Son simplemente diferencias de estilo. Esto contrasta con otros textos enriquecidos, como cursivas, superíndices y subíndices, o marcadores de lista, donde el estilo del texto enriquecido implica cierta semántica junto con él.
Para comparar, cotejar, manipular y almacenar texto sin formato, las variantes de texto enriquecido son semánticamente redundantes. Por ejemplo, usar un carácter de superíndice para el número 4 probablemente no se distinga del uso del carácter estándar para un número 4 y luego usar protocolos de texto enriquecido para convertirlo en superíndice. Por lo tanto, estos caracteres de texto enriquecido alternativos crean ambigüedad porque aparecen visualmente iguales que sus homólogos de texto sin formato con el formato de texto enriquecido aplicado. Estos caracteres de compatibilidad de texto enriquecido incluyen:
Para todos estos caracteres de compatibilidad de texto enriquecido, la visualización de glifos suele ser distinta de sus caracteres de descomposición de compatibilidad (relacionados). Sin embargo, estos se consideran caracteres de compatibilidad y el consorcio Unicode desaconseja su uso porque no son caracteres de texto sin formato, que es lo que Unicode busca respaldar con su UCS y protocolos asociados. El texto enriquecido debe manejarse mediante protocolos que no sean Unicode, como HTML, CSS, RTF y otros protocolos similares.
Los caracteres de compatibilidad de texto enriquecido comprenden 1451 [ cita necesaria ] de los 5402 caracteres de compatibilidad. Estos incluyen todos los caracteres de compatibilidad marcados con las palabras clave <círculo> y <fuente> (excepto tres que se enumeran semánticamente distintos a continuación); 11 variantes de espacios de <compat> y caracteres canónicos; y algunas de las palabras clave <superscript> y <subscript> del bloque "Superíndices y subíndices".
Muchos caracteres de compatibilidad son caracteres semánticamente distintos, aunque pueden compartir glifos representativos con otros caracteres. Es posible que algunos de estos personajes se hayan incluido porque la mayoría de los demás conjuntos de personajes se centraban en un guión o sistema de escritura. Así, por ejemplo, el ISO y otros conjuntos de caracteres latinos probablemente incluían un carácter para π (pi), ya que, al centrarse principalmente en un sistema de escritura o escritura, esos conjuntos de caracteres no habrían tenido caracteres para el símbolo matemático común π;. Sin embargo, con Unicode, los matemáticos son libres de utilizar caracteres de cualquier escritura conocida en el mundo para sustituir un conjunto matemático o una constante matemática. Hasta la fecha, Unicode solo ha agregado soporte semántico específico para algunas de estas constantes matemáticas (por ejemplo, la constante de Planck, U+210E, y la constante de Euler, U+2107, las cuales Unicode considera caracteres de compatibilidad). Por lo tanto, Unicode designa varios símbolos matemáticos basados en letras del griego y del hebreo como caracteres de compatibilidad. Éstas incluyen:
Si bien estos caracteres de compatibilidad se distinguen de sus caracteres de descomposición de compatibilidad sólo agregando la palabra "símbolo" a su nombre, representan significados distintos de larga data en las matemáticas escritas. Sin embargo, a todos los efectos prácticos, comparten la misma semántica que su equivalente de compatibilidad con la letra griega o hebrea. Estos pueden considerarse caracteres semánticamente distinguibles en el límite, por lo que no se incluyen en el total.
Aunque Unicode no tiene la intención de codificar dichas unidades de medida, el repertorio incluye seis (6) símbolos que los autores no deben utilizar: en su lugar, se deben utilizar las descomposiciones de los caracteres.
Unicode también designa otros veintidós (22) símbolos similares a letras como caracteres de compatibilidad.
Además, varias escrituras utilizan la posición de los glifos, como superíndices y subíndices, para diferenciar la semántica. En estos casos, los subíndices y superíndices no son simplemente texto enriquecido, sino que constituyen un carácter distinto, similar a un híbrido entre un signo diacrítico y una letra [¿ investigación original? ] — en el sistema de escritura (130 en total).
Finalmente, Unicode designa los números romanos como equivalencia de compatibilidad con las letras latinas que comparten los mismos glifos. [ cita necesaria ]
El número romano Mil en realidad tiene un tercer carácter que representa una tercera forma o glifo para la misma unidad semántica: Mil CD (ↀ U+2180). A partir de este glifo, se puede ver de dónde pudo haber surgido la práctica de usar una M latina. Curiosamente, aunque Unicode unifica los números romanos de valor de signo con las muy diferentes [ cita necesaria ] (aunque visualmente similares) letras latinas, los números de dígitos decimales de valor posicional (posicionales) árabes índicos se repiten 24 veces (un total de 240 puntos de código para 10 números) en todo el UCS sin ningún mapeo relacional o de descomposición entre ellos.
La presencia de estos 167 caracteres semánticamente distintos aunque visualmente similares (más los 11 símbolos basados en letras hebreas y griegas y los 6 símbolos de unidades de medida) entre los caracteres descomponibles complica el tema de los caracteres de compatibilidad. El estándar Unicode desaconseja el uso de caracteres de compatibilidad por parte de los autores de contenido. Sin embargo, en ciertas áreas especializadas, estos personajes son importantes y bastante similares a otros personajes que no han sido incluidos entre los personajes de compatibilidad. Por ejemplo, en ciertos círculos académicos el uso de números romanos a diferencia de las letras latinas que comparten los mismos glifos no sería diferente del uso de números cuneiformes o de números griegos antiguos. Contraer los caracteres de los números romanos a caracteres de letras latinas elimina una distinción semántica. Existe una situación similar para los caracteres del alfabeto fonético que utilizan glifos posicionados en subíndice o superíndice. En los círculos especializados que utilizan alfabetos fonéticos, los autores deberían poder hacerlo sin recurrir a protocolos de texto enriquecido. Como otro ejemplo, la palabra clave "círculo" de caracteres de compatibilidad se utiliza a menudo para describir el juego Go . Sin embargo, estos usos de los caracteres de compatibilidad constituyen excepciones en las que el autor tiene una razón especial para utilizar los caracteres que de otro modo no se recomiendan.
Varios bloques de caracteres Unicode incluyen en su totalidad o casi en su totalidad todos los caracteres de compatibilidad (U+F900–U+FFEF excepto los que no son caracteres). Los bloques de compatibilidad no contienen ninguno de los caracteres de compatibilidad semánticamente distintos con una sola excepción: el símbolo de moneda rial (﷼ U+FDFC), por lo que los caracteres de compatibilidad descomponibles en los bloques de compatibilidad caen sin ambigüedades en el conjunto de caracteres no recomendados. Unicode recomienda a los autores utilizar los equivalentes de descomposición de compatibilidad de texto sin formato y complementar esos caracteres con marcado de texto enriquecido. Este enfoque es mucho más flexible y abierto que utilizar el conjunto finito de caracteres alfanuméricos encerrados o encerrados en un círculo, para dar sólo un ejemplo.
Desafortunadamente, hay una pequeña cantidad de caracteres, incluso dentro de los bloques de compatibilidad, que en sí mismos no son caracteres de compatibilidad y, por lo tanto, pueden confundir a los autores. El bloque "Letras y meses CJK adjuntos" contiene un único carácter de no compatibilidad: el "Símbolo estándar coreano" (㉿ U+327F). Ese símbolo y otros 12 caracteres se han incluido en los bloques por razones desconocidas. El bloque "Ideógrafos de compatibilidad CJK" contiene estos ideogramas Han unificados de no compatibilidad:
Estos trece caracteres no son caracteres de compatibilidad y no se desaconseja su uso de ninguna manera. Sin embargo, U+27EAF 𧺯, al igual que U+FA23 﨣, está codificado erróneamente en la Extensión B de Ideógrafos Unificados de CJK. [4] En cualquier caso, un texto normalizado nunca debe contener U+27EAF 𧺯 y U+FA23 﨣; Estos puntos de código representan el mismo carácter, codificado dos veces.
Varios otros caracteres en estos bloques no tienen asignación de compatibilidad, pero están claramente destinados al soporte heredado:
Formularios de Presentación Alfabética (1)
Formularios de presentación en árabe (4)
Formularios de compatibilidad de CJK (2 que están relacionados con el ideograma unificado de CJK: U+4E36 丶)
Alfanuméricos adjuntos (21 variantes de texto enriquecido)
La normalización es el proceso mediante el cual el software compatible con Unicode primero realiza una descomposición de compatibilidad antes de realizar comparaciones o cotejar cadenas de texto. Esto es similar a otras operaciones necesarias cuando, por ejemplo, un usuario realiza una búsqueda que no distingue entre mayúsculas y minúsculas dentro de algún texto. En tales casos, el software debe igualar o ignorar caracteres que de otro modo no igualaría ni ignoraría. Normalmente, la normalización se realiza sin alterar los datos de texto almacenados subyacentes (sin pérdidas). Sin embargo, algunos programas pueden realizar cambios permanentes en el texto que eliminan las diferencias de caracteres de compatibilidad canónicos o incluso no canónicos del almacenamiento de texto (con pérdida).