simbolos - ¿Por qué se usa ''U+'' para designar un punto de código Unicode?
unicode simbolos (4)
¿Por qué los puntos de código Unicode aparecen como U+
<codepoint>
?
Por ejemplo, U+2202
representa el carácter ∂ .
¿Por qué no U-
(guión o guión) o cualquier otra cosa?
Depende de la versión del estándar Unicode de la que esté hablando. De la Wikipedia :
Las versiones anteriores del estándar usaban notaciones similares, pero con reglas ligeramente diferentes. Por ejemplo, Unicode 3.0 usaba "U-" seguido de ocho dígitos, y permitía que "U +" se usara solo con exactamente cuatro dígitos para indicar una unidad de código, no un punto de código.
El estándar Unicode necesita alguna notación para hablar sobre los puntos de código y los nombres de los personajes. Adoptó la convención de "U +" seguida de cuatro o más dígitos hexadecimales al menos desde The Unicode Standard , versión 2.0.0 , publicada en 1996 (fuente: copia archivada en PDF en el sitio web de Unicode Consortium).
La notación "U +" es útil. Proporciona una forma de marcar dígitos hexadecimales como puntos de código Unicode, en lugar de octetos, cantidades de 16 bits sin restricciones o caracteres en otras codificaciones. Funciona bien en la ejecución de texto. La "U" sugiere "Unicode".
Mi recuerdo personal de las discusiones de la industria del software a principios de los 90 sobre Unicode es que una convención de "U +" seguida de cuatro dígitos hexadecimales era común durante la era Unicode 1.0 y Unicode 2.0. En ese momento, Unicode era visto como un sistema de 16 bits. Con el advenimiento de Unicode 3.0 y la codificación de caracteres en los puntos de código de U + 010000 y superiores, se utilizó la convención de "U-" seguida de seis dígitos hexadecimales, específicamente para resaltar los dos dígitos adicionales en el número. (O tal vez fue al revés, un cambio de "U" a "U +"). En mi experiencia, la convención "U +" ahora es mucho más común que la convención "U", y pocas personas usan el diferencia entre "U +" y "U-" para indicar el número de dígitos.
Sin embargo, no pude encontrar documentación del cambio de "U +" a "U". Los mensajes archivados de la lista de correo de la década de 1990 deberían tener evidencia de ello, pero no puedo señalarlos convenientemente. El Unicode Standard 2.0 declaró, "los códigos de caracteres Unicode tienen un ancho uniforme de 16 bits". (p.2-3) Estableció su convención de que "un valor Unicode individual se expresa como U + nnnn , donde nnnn es un número de cuatro dígitos en notación hexadecimal" (p.1-5). Se asignaron valores suplentes, pero no se definieron códigos de caracteres por encima de U + FFFF, y no se mencionaron UTF-16 o UTF-32. Usó "U +" con cuatro dígitos. El Unicode Standard 3.0.0 , publicado en 2000, definió UTF-16 (p.46-47) y discutió los puntos de código de U + 010000 y superiores. Usó "U +" con cuatro dígitos en algunos lugares y con seis dígitos en otros lugares. La huella más firme que encontré estaba en The Unicode Standard , versión 6.0.0 , donde una tabla de notación de sintaxis BNF define los símbolos U+HHHH
y U-HHHHHHHH
( U-HHHHHHHH
).
La notación "U +" no es la única convención para representar puntos de código Unicode o unidades de código. Por ejemplo, el lenguaje Python define los siguientes literales de cadena :
-
u''xyz''
para indicar una cadena Unicode, una secuencia de caracteres Unicode -
''/uxxxx''
para indicar una cadena con un carácter Unicode denotado por cuatro dígitos hexadecimales -
''/Uxxxxxxxx''
para indicar una cadena con un carácter Unicode denotado por ocho dígitos hexadecimales
Es solo una convención para mostrar que el valor es Unicode. Un poco como ''0x'' o ''h'' para valores hexadecimales ( 0xB9
o B9h
). ¿Por qué 0xB9
y no 0hB9
(o &hB9
o $B9
)? Solo porque así es como la moneda volteó :-)
Los caracteres "U +" son una versión ASCIIfied del carácter MULTISET UNION "⊎" U + 228E (el símbolo de unión similar a U con un signo más dentro), que simbolizaba Unicode como la unión de conjuntos de caracteres. Vea la explicación de Kenneth Whistler en la lista de correo de Unicode .