stringtranslate.com

Propiedad de carácter Unicode

El estándar Unicode asigna varias propiedades a cada carácter y punto de código Unicode . [1] [2]

Las propiedades se pueden utilizar para manejar caracteres (puntos de código) en procesos, como en saltos de línea, dirección de script de derecha a izquierda o aplicación de controles. Algunas "propiedades de caracteres" también se definen para puntos de código que no tienen ningún carácter asignado y puntos de código que están etiquetados como "<no es un carácter>". Las propiedades de caracteres se describen en el Anexo estándar n.° 44. [2]

Las propiedades tienen niveles de fuerza: normativa, informativa, contributiva o provisional. Para simplificar la especificación, se puede asignar una propiedad de carácter especificando un rango continuo de puntos de código que tengan la misma propiedad. [3]

Elementos semánticos

Las propiedades se muestran en el siguiente orden: [4]

[código];[nombre];[gc];[cc];[bc];[descomposición];[nv-dec];[nv-dig];[nv-num];[bm];[alias];;[mayúsculas];[minúsculas];[título en mayúsculas]

La propiedad entre 'alias' y 'mayúsculas' está obsoleta y ahora es nula para todos los caracteres Unicode.

Código

La primera propiedad es el punto de código hexadecimal .

Nombre y alias

A cada carácter Unicode se le asigna un nombre único (na). [1] El nombre se compone de letras mayúsculas A–Z, dígitos 0–9, guión-menos y espacio . Se excluyen algunas secuencias: no se permiten nombres que comiencen con un espacio o guión, nombres que terminen con un espacio o guión, espacios o guiones repetidos y espacios después de un guión. Se garantiza que el nombre sea único dentro de Unicode y se puede usar para identificar un punto de código y su carácter. Los caracteres ideográficos, de los cuales hay decenas de miles, se nombran según el patrón " cjk unified ideograph - hhhh ". Por ejemplo, U+4E00 CJK UNIFIED IDEOGRAPH-4E00 . Los caracteres de formato también se nombran: U+00A0 NO-BREAK SPACE .  

Las siguientes clases de puntos de código no tienen un nombre (na=""): Controles (categoría general: Cc), Uso privado (Co), Sustituto (Cs), No caracteres (Cn) y Reservado (Cn). Se puede hacer referencia a ellos, de manera informal, mediante un metanombre genérico o específico, llamado "Etiquetas de puntos de código": <control>, <control-0088>, <reserved>, <noncharacter- hhhh >, <private-use- hhhh > o <surrogate>. Dado que estas etiquetas contienen corchetes <>, nunca pueden aparecer como un nombre, lo que evita confusiones.

Nombres de la versión 1.0

En la versión 2.0 de Unicode, se cambiaron muchos nombres. A partir de entonces entró en vigor la regla de que "un nombre nunca cambiará", incluido el uso estricto (normativo) de los nombres alias. Los nombres en desuso de la versión 1.0 se trasladaron a la propiedad Alias ​​para proporcionar cierta compatibilidad con versiones anteriores.

Alias ​​del nombre del personaje

A partir de la versión 2.0 de Unicode, el nombre publicado para un punto de código nunca cambiará. Por lo tanto, en caso de que el nombre de un carácter esté mal escrito o si el nombre del carácter es completamente incorrecto o muy engañoso, se puede asignar un alias de nombre de carácter formal al carácter, y las aplicaciones pueden usar este alias en lugar del nombre de carácter defectuoso real. [1] Por ejemplo, U+FE18FORMA DE PRESENTACIÓN PARA BRAZO LENTICULAR BLANCO DERECHO VERTICAL tiene el alias de nombre de carácter " FORMA DE PRESENTACIÓN PARA BRAZO LENTICULAR BLANCO DERECHO VERTICAL " para mitigar la ortografía incorrecta de "bracket" como "brakcet" [ sic ] en el nombre de carácter real; U+A015YI SÍLABA WU tiene el alias de nombre de carácter "MARCA DE ITERACIÓN DE SÍLABA YI" porque, a diferencia del nombre del carácter, no tiene un valor silábico fijo.

Además de los alias de nombres de caracteres, que son correcciones a nombres de caracteres defectuosos, a algunos caracteres se les asignan alias, que son nombres alternativos o abreviaturas. En el estándar Unicode se definen cinco tipos de alias de nombres de caracteres:

Todos los alias de nombres de caracteres formales siguen las reglas para nombres de caracteres permitidos y se garantiza que son únicos tanto dentro del alias de nombre de carácter como dentro de los espacios de nombres de caracteres (por este motivo, el nombre ISO 6429 "BELL" no está definido como un alias para U+0007 <control-0007> porque U+1F514 se llama "BELL"). [1]

A partir de la versión 16.0 de Unicode, se definen treinta y cinco alias de nombres de caracteres formales como correcciones para nombres de caracteres defectuosos. [5]

Además de estos nombres normativos, en las tablas de códigos Unicode se pueden mostrar nombres informales . Se trata de otros nombres de uso común para un carácter y no tienen la misma restricción de caracteres. No se garantiza que estos nombres informales sean únicos y pueden modificarse o eliminarse en versiones posteriores del estándar.

Categoría general

A cada punto de código se le asigna un valor para la categoría general. Esta es una de las propiedades de caracteres que también se definen para los puntos de código no asignados y los puntos de código que se definen como "no caracteres".

Puntuación

Los caracteres tienen propiedades independientes para indicar que son un carácter de puntuación . Todas las propiedades tienen valores Sí/No : Dash , Quotation_Mark , Sentence_Terminal , Terminal_Punctuation . La propiedad Puntuación se refiere a los caracteres que se utilizan para dividir o estructurar el texto y se clasifican en diferentes tipos según sus funciones. Unicode asigna categorías específicas a estos caracteres de puntuación.

Espacio en blanco

El espacio en blanco es un concepto que se utiliza con frecuencia para designar un efecto tipográfico. Básicamente, abarca caracteres invisibles que tienen un efecto de espaciado en el texto representado. Incluye espacios , tabulaciones y controles de formato de nueva línea. En Unicode, este tipo de caracteres tiene la propiedad "WSpace=yes". En la versión 16.0, hay 25 caracteres de espacio en blanco.


Caja

El valor de mayúsculas y minúsculas es normativo en Unicode. Se aplica a los alfabetos con letras mayúsculas y minúsculas. La diferencia entre mayúsculas y minúsculas se da en los alfabetos adlam, armenio, cherokee, copto, cirílico, deseret, garay, glagolítico, griego, khutsuri y mkhedruli georgiano, latín, medefaidrin, húngaro antiguo, osage, vithkuqi y warang citi.

(superior, inferior, título, plegable, tanto simple como completo)

Otras características generales

Ideográfico, alfabético, no característico.

Combinando clases

Algunos códigos comunes:

0 = espaciado entre letras, símbolos o modificadores (por ejemplo, a, (, ʰ)
1 = superposición
6 = Lectura Han (marcas diacríticas de lectura CJK)
7 = nukta ( nukta diacrítico en escrituras brahmicas )
8 = signos sonoros de kana
9 = virama

10–199 = varias clases de posición fija

Marcas que se adhieren a la letra base:

200 = adjunto en la parte inferior izquierda
202 = se adjunta directamente debajo (p. ej. cedilla en ç)
204 = adjunto en la parte inferior derecha
208 = adjunto a la izquierda
210 = adjunto a la derecha
212 = adjunto en la parte superior izquierda
214 = adjunto directamente encima
216 = adjunto en la parte superior derecha

Marcas que no se adhieren a la letra base:

218 = abajo a la izquierda
220 = directamente debajo (por ejemplo, anillo en n̥)
222 = abajo a la derecha
224 = izquierda
226 = correcto
228 = arriba a la izquierda
230 = arriba (p.ej. acento agudo en á)
232 = arriba a la derecha
233 = doble abajo (subtiende dos bases)
234 = doble arriba (extiende dos bases)
240 = iota subíndice (solo ese diacrítico griego)

Escritura bidireccional

Hay seis propiedades de caracteres que pertenecen a la escritura bidireccional: Bidi_Class , Bidi_Control , Bidi_Mirrored , Bidi_Mirroring_Glyph , Bidi_Paired_Bracket y Bidi_Paired_Bracket_Type .

Una de las principales características de Unicode es la compatibilidad con la visualización de texto bidireccional ( Bidi ), de derecha a izquierda (R-to-L) y de izquierda a derecha (L-to-R). El algoritmo bidireccional Unicode UAX9 [19] describe el proceso de presentación de texto con direcciones de escritura cambiantes. Por ejemplo, permite incluir una cita en hebreo en un texto en inglés. El Bidi_Character_Type marca el comportamiento de un carácter en la escritura direccional. Para anular una dirección, Unicode ha definido caracteres de control de formato especiales ( Bidi-Control ). Estos caracteres pueden imponer una dirección y, por definición, solo afectan a la escritura bidireccional.

Cada punto de código tiene una propiedad denominada Bidi_Class , que define su comportamiento en un texto bidireccional tal como lo interpreta el algoritmo:

Tipo de carácter bidireccional ( propiedad de carácter Unicode Bidi_Class ) [1]

En situaciones normales, el algoritmo puede determinar la dirección de un texto mediante esta propiedad de carácter. Para controlar situaciones Bidi más complejas, por ejemplo, cuando un texto en inglés tiene una cita en hebreo, se añaden opciones adicionales a Unicode. Doce caracteres tienen la propiedad Bidi_Control=Yes: ALM, FSI, LRE, LRI, LRM, LRO, PDF, PDI, RLE, RLI, RLM y RLO como se nombra en la tabla. Estos son caracteres de control de formato invisibles, solo utilizados por el algoritmo y sin efecto fuera del formato bidireccional. [19] A pesar del nombre, son caracteres de formato, no caracteres de control, y tienen la categoría general Otro, formato (Cf) en la definición Unicode.

Básicamente, el algoritmo determina una secuencia de caracteres con el mismo tipo de dirección fuerte (R-a-L o L-a-R), teniendo en cuenta la anulación de los controles Bidi especiales. A las cadenas de números (tipos débiles) se les asigna una dirección de acuerdo con su entorno fuerte, al igual que a los caracteres neutrales. Finalmente, los caracteres se muestran según la dirección de una cadena.

Hay dos propiedades de caracteres que son relevantes para determinar una imagen reflejada de un glifo en un texto bidireccional: Bidi_Mirrored=Yesindica que el glifo debe reflejarse cuando se escribe de derecha a izquierda. La propiedad Bidi_Mirroring_Glyph=U+hhhhpuede entonces señalar el carácter reflejado. Por ejemplo, los paréntesis ( , ) se reflejan de esta manera. Dar forma a las escrituras cursivas, como la árabe, y reflejar glifos que tienen una dirección no es parte del algoritmo.

Valores numéricos y tipos

Decimal

Los caracteres se clasifican con un tipo numérico . [1] Los caracteres como fracciones, subíndices, superíndices, números romanos, numeradores de moneda, números encerrados en un círculo y dígitos específicos de la escritura son de tipo numérico. Tienen un valor numérico que puede ser decimal, incluidos cero y negativos, o una fracción vulgar. Si no existe dicho valor, como ocurre con la mayoría de los caracteres, el tipo numérico es "Ninguno".

Los caracteres que tienen un valor numérico se dividen en tres grupos: decimal (De), dígito (Di) y numérico (Nu, es decir, todos los demás). "Decimal" significa que el carácter es un dígito decimal. Solo los caracteres que forman parte de un rango codificado contiguo de 0 a 9 tienen el tipo numérico decimal. Otros dígitos, como los superíndices, tienen el tipo numérico dígito. Todos los caracteres numéricos, como las fracciones y los números romanos, terminan con el tipo "numérico". El efecto deseado es que un analizador simple pueda usar estos valores numéricos decimales, sin distraerse con, por ejemplo, un superíndice numérico o una fracción. Ochenta y tres ideogramas CJK que representan un número, incluidos los utilizados para contabilidad, se escriben como numéricos.

Por otra parte, los caracteres que podrían tener un valor numérico como segundo significado siguen estando marcados como de tipo numérico None y no tienen valor numérico. Por ejemplo, se pueden utilizar letras latinas en la numeración de párrafos como "II.A.1.b", pero las letras "I", "A" y "b" no son numéricas (tipo None ) y no tienen valor numérico.

Dígitos hexadecimales

Los caracteres hexadecimales son aquellos que se encuentran en la serie con valores hexadecimales 0...9ABCDEF (dieciséis caracteres, valor decimal 0-15). La propiedad de carácter Hex_Digit se establece en Sí cuando un carácter se encuentra en una de estas series:

Cuarenta y cuatro caracteres están marcados como Hex_Digit . Los del bloque de latín básico también están marcados como ASCII_Hex_Digit .

Unicode no tiene caracteres separados para los valores hexadecimales. Una consecuencia es que, cuando se utilizan caracteres regulares, no es posible determinar si se pretende un valor hexadecimal, o incluso si se pretende un valor en absoluto. Esto se debe determinar en un nivel superior, por ejemplo, anteponiendo 0x a un número hexadecimal o por contexto. La única característica es que Unicode puede indicar que una secuencia puede o no ser un valor hexadecimal.

Bloquear

Un bloque es un rango de puntos de código contiguos y con un nombre único. Se identifica por su primer y último punto de código. Los bloques no se superponen . Un bloque puede contener puntos de código reservados, no asignados, etc. Cada carácter asignado tiene un único valor de "nombre de bloque" de los 338 nombres asignados a partir de la versión 16.0 de Unicode. Los puntos de código no asignados fuera de un bloque existente tienen el valor predeterminado "No_block".

Guion

Cada carácter asignado puede tener un único valor para su propiedad "Script", que indica a qué script pertenece. [20] El valor es un código de cuatro letras en el rango Aaaa-Zzzz, tal como está disponible en ISO 15924, que se asigna a un sistema de escritura . Aparte de cuando se describe el contexto y el uso de un script, Unicode no utiliza una conexión entre un script y los idiomas que lo utilizan. Por lo tanto, "hebreo" se refiere al script hebreo, no al idioma hebreo.

El código especial Zyyy para "Común" permite un valor único para un carácter que se utiliza en múltiples escrituras. El código Zinh "Escritura heredada", utilizado para combinar caracteres y otros puntos de código de propósito especial, indica que un carácter "hereda" su identidad de escritura del carácter con el que se combina. (Unicode anteriormente utilizaba el código privado Qaai para este propósito). El código Zzzz "Desconocido" se utiliza para todos los caracteres que no pertenecen a una escritura (es decir, el valor predeterminado), como símbolos y caracteres de formato. En general, los caracteres de una sola escritura pueden estar dispersos en varios bloques, como los caracteres latinos . Y al revés también: pueden estar presentes varias escrituras en un solo bloque, por ejemplo, el bloque Símbolos similares a letras contiene caracteres de las escrituras latina, griega y común.

Cuando el Script está en blanco, según Unicode el carácter no pertenece a un script. Esto se aplica a los símbolos, porque los códigos de script ISO existentes "Zmth" (notación matemática), "Zsym" (símbolo) y "Zsye" (símbolo, variante de emoji) no se utilizan en Unicode. La propiedad "Script" también está en blanco para los puntos de código que no son un carácter tipográfico, como controles, sustitutos y puntos de código de uso privado.

Si hay un nombre de alias de script específico en ISO 15924, se utiliza en el nombre del carácter: U+0041 A LETRA MAYÚSCULA LATINA A , y U+05D0 א LETRA HEBREA ALEF .

Normalization properties

Decompositions, decomposition type, canonical combining class, composition exclusions, and more.

Age

Age is the version of the Standard in which the code point was first designated. The version number is shortened to the numbering major.minor, although there more detailed version numbers are used: versions 4.0.0 and 4.0.1 both are named 4.0 as Age. Given the releases, Age can be from the range: 1.1, 2.0, 2.1, 3.0, 3.1, 3.2, 4.0, 4.1, 5.0, 5.1, 5.2, 6.0, 6.1, 6.2, 6.3, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 12.1, 13.0, 14.0, 15.0, 15.1, and 16.0.[21] The long values for Age begin in a V and use an underscore instead of a dot: V1_1, for example.[2] Codepoints without a specifically assigned age value have the value "NA", with the long form "Unassigned".

Deprecated

Once a character has been defined, it will not be removed or reassigned.[22] However, a character may be deprecated, meaning its "use is strongly discouraged".[23] As of Unicode version 15.1, the following fifteen characters are deprecated:[24]

Boundaries

The Unicode Standard specifies the following boundary-related properties:

Alias name

Unicode can assign alias names to code points. These names are unique over all names (including regular ones), so they can be used as identifier. There are five possible reasons to add an alias:

1. Abbreviation
Commonly occurring abbreviations or acronyms for control codes, format characters, spaces, and variation selectors.
For example, U+00A0   NO-BREAK SPACE has alias NBSP. Sometimes presented in a box:
NBSP
.
2. Control
ISO 6429 names for C0 and C1 control functions and similar commonly occurring names, are added as an alias to the character.
For example, U+0008 <control-0008> has alias BACKSPACE.
3. Correction
This is a correction for a "serious problem" in the primary character name, usually an error.
For example, U+2118 SCRIPT CAPITAL P is actually a lowercase p, and so is given alias name WEIERSTRASS ELLIPTIC FUNCTION: "actually this has the form of a lowercase calligraphic p, despite its name, and through the alias the correct spelling is added." In descriptions, with preceding symbol ※.
4. Alternate
A widely used alternate name for a character.
Example: U+FEFF ZERO WIDTH NO-BREAK SPACE has alternate BYTE ORDER MARK.
5. Figment
Several documented labels for C1 control code points which were never actually approved in any standard (figment = feigned, in fiction).
For example, U+0099 <control-0099> has figment alias SINGLE GRAPHIC CHARACTER INTRODUCER. This name is an architectural concept from early drafts of ISO/IEC 10646-1, but it was never approved and standardized.

External links

References

  1. ^ a b c d e "The Unicode Standard Version 16". The Unicode Consortium. September 2024. Retrieved 2024-09-13.
  2. ^ a b c "Unicode Standard Annex #44: Unicode Character Database". Unicode. 2024-08-27.
  3. ^ "Unicode Standard Annex #44: Unicode Character Database, 4.2.3 Code Point Ranges". Unicode. 2024-08-27.
  4. ^ UnicodeData.txt
  5. ^ "UCD: Name Aliases". Unicode Character Database. Unicode Consortium. 2024-04-24.
  6. ^ "Character design standards – space characters". Character design standards. Microsoft. 1998–1999. Archived from the original on March 14, 2010. Retrieved 2009-05-18.
  7. ^ The Unicode Standard 5.0, printed edition, p. 205; also available at "Chapter 6 — Writing Systems and Punctuation" (PDF). The Unicode Standard 5.0, electronic edition. Unicode Consortium. 2006-07-14. p. 11 (205). Retrieved 2022-12-22.
  8. ^ "General Punctuation" (PDF). The Unicode Standard 5.1. Unicode Inc. 1991–2008. Retrieved 2009-05-13.
  9. ^ Sargent, Murray III (2006-08-29). "Unicode Nearly Plain Text Encoding of Mathematics (Version 2)". Unicode Technical Note #28. Unicode Inc. pp. 19–20. Retrieved 2009-05-19.
  10. ^ Gillam, Richard (2002). Unicode Demystified: A Practical Programmer's Guide to the Encoding Standard. Addison-Wesley. ISBN 0-201-70052-2.
  11. ^ a b Hickson, Ian. "12.5 Named character references". HTML Standard. WHATWG.
  12. ^ Wolfram. "\[NegativeThickSpace]". Wolfram Language Documentation.
  13. ^ Wolfram. "\[NegativeMediumSpace]". Wolfram Language Documentation.
  14. ^ Wolfram. "\[NegativeThinSpace]". Wolfram Language Documentation.
  15. ^ Wolfram. "\[NegativeVeryThinSpace]". Wolfram Language Documentation.
  16. ^ Faltstrom, P., ed. (August 2010). "Zero Width Non-Joiner". The Unicode Code Points and Internationalized Domain Names for Applications (IDNA). IETF. sec. A.1. doi:10.17487/RFC5892. RFC 5892. Retrieved September 4, 2019.
  17. ^ Faltstrom, P., ed. (August 2010). "Zero Width Joiner". The Unicode Code Points and Internationalized Domain Names for Applications (IDNA). IETF. sec. A.2. doi:10.17487/RFC5892. RFC 5892. Retrieved September 4, 2019.
  18. ^ "Unicode Standard Annex #44, Unicode Character Database".
  19. ^ a b "Unicode Standard Annex #9: Unicode Bidirectional Algorithm". The Unicode Standard. 2024-09-02.
  20. ^ "Unicode Standard Annex #24: Unicode Script Property". The Unicode Standard. 2024-07-31.
  21. ^ "UCD: Derived Age". Unicode Character Database. Unicode Consortium. 2024-04-30.
  22. ^ "Unicode Character Encoding Stability Policies". Unicode. Unicode Consortium. 2024-01-09. Retrieved 2024-01-13. Once a character is encoded, it will not be moved or removed.
  23. ^ "The Unicode Standard, D13 Deprecated character". 2024. Retrieved 2024-09-13.
  24. ^ "PropList-16.0.0.txt". Unicode. Unicode Consortium. 2024-05-31. Retrieved 2024-09-13.
  25. ^ "Chapter 23.3: Deprecated Format Characters". 2024. Retrieved 2024-09-13.
  26. ^ "23.9: Tag Characters, Deprecated Use for Language Tagging". 2024. Retrieved 2024-09-13.