stringtranslate.com

Propiedad de carácter Unicode

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

Las propiedades se pueden utilizar para manejar caracteres (puntos de código) en procesos, como saltos de línea, dirección de secuencia de comandos de derecha a izquierda o aplicación de controles. Algunas "propiedades de carácter" 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 los caracteres se describen en el Anexo Estándar #44. [2]

Las propiedades tienen niveles de contundencia: 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]

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 del código hexadecimal .

Nombre y alias

A un carácter Unicode se le asigna un nombre único (na). [1] El nombre se compone de letras mayúsculas de la A a la Z, dígitos del 0 al 9, guión menos (-) y espacio (). Algunas secuencias están excluidas: nombres que comienzan con un espacio o guión, nombres que terminan con un espacio o guión, espacios o guiones repetidos y no se permiten espacios después de un guión. Se garantiza que el nombre será único dentro de Unicode y se puede utilizar 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 " ideógrafo unificado cjk - hhhh ". Por ejemplo, U+4E00 CJK IDEOGRAFO UNIFICADO-4E00 . Los caracteres de formato también tienen nombres: U+00A0 ESPACIO SIN INTERRUPCIÓN .  

Las siguientes clases de puntos de código no tienen nombre (na=""): Controles (Categoría general: Cc), Uso privado (Co), Sustituto (Cs), Sin 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>, <reservado>, <noncharacter- hhhh > , <private-use- hhhh > o <sustituto>. Dado que estas etiquetas contienen corchetes <>, nunca pueden aparecer como 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 "un nombre nunca cambiará", incluido el uso estricto (normativo) de alias. Los nombres de la versión 1.0 en desuso 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 de un punto de código nunca cambiará. Por lo tanto, en caso de que el nombre de un personaje esté mal escrito o si el nombre del personaje es completamente incorrecto o muy engañoso, se puede asignar un alias de nombre de personaje formal al personaje, y las aplicaciones pueden utilizar este alias en lugar del nombre de personaje defectuoso real. . [1] Por ejemplo, U+FE18FORMULARIO DE PRESENTACIÓN PARA SOPORTE LENTICULAR BLANCO VERTICAL DERECHO tiene el alias de nombre de carácter "FORMULARIO DE PRESENTACIÓN PARA SOPORTE LENTICULAR BLANCO VERTICAL DERECHO" para mitigar el error ortográfico de "bracket" como "brakcet" en el formato real. Nombre del personaje; U+A015YI SYLLABLE WU tiene el nombre de carácter alias "YI SYLLABLE ITERATION MARK" porque, a diferencia del nombre del carácter, no tiene un valor silábico fijo.

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

Todos los alias de nombres de personajes formales siguen las reglas para los nombres de personajes permitidos y se garantiza que serán únicos tanto dentro del alias de nombres de personajes como en los espacios de nombres de nombres de personajes (por esta razón, el nombre ISO 6429 "BELL" no está definido como un alias para U +0007 porque U+1F514 se llama "BELL"). [1]

A partir de la versión 12.1 de Unicode, se definen veintiocho alias de nombres de caracteres formales como correcciones para nombres de caracteres defectuosos. [5] Estos se enumeran a continuación.

Además de estos nombres normativos, es posible que se muestren nombres informales en los cuadros de códigos Unicode. Estos son otros nombres de uso común para un personaje y no tienen la misma restricción de caracteres. No se garantiza que estos nombres informales sean únicos y pueden cambiarse 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 los caracteres que también se definen para puntos de código no asignados y puntos de código que se definen como "no un carácter".

Puntuación

Los caracteres tienen propiedades separadas para indicar que son caracteres de puntuación . Todas las propiedades tienen valores Sí/No : Dash , Quotation_Mark , Sentence_Terminal , Terminal_Punctuation .

Espacio en blanco

El espacio en blanco es un concepto comúnmente utilizado para un efecto tipográfico. Básicamente cubre caracteres invisibles que tienen un efecto de espaciado en el texto renderizado. Incluye espacios , tabulaciones y controles de formato de nueva línea. En Unicode, dicho carácter tiene la propiedad establecida "WSpace=yes". En la versión 15.1, hay 25 caracteres de espacio en blanco.


Caja

El valor del caso es normativo en Unicode. Se refiere a aquellas escrituras con letras mayúsculas (también conocidas como mayúsculas, mayúsculas) y minúsculas (también conocidas como minúsculas, minúsculas). La diferencia de casos se produce en las escrituras adlam, armenia, cherokee, copta, cirílica, deseret, glagolítica, griega, khutsuri y mkhedruli, georgiana, latina, medefaidrin, húngara antigua, osage, vithkuqi y warang citi.

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

Otras características generales

Ideográfico, alfabético, sin carácter.

Combinando clase

Algunos códigos comunes:

0 = letra de espaciado, símbolo o modificador (por ejemplo, a, (, ʰ)
1 = superposición
6 = Lectura Han (marcas de lectura diacrítica CJK)
7 = nukta ( nukta diacrítico en escrituras brahmicas )
8 = marcas de voz kana
9 = virama

10–199 = varias clases de posición fija

Marcas que se adjuntan a la letra base:

200 = adjunto en la parte inferior izquierda
202 = adjunto directamente debajo (por ejemplo, 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 arriba
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 (por ejemplo, acento agudo en á)
232 = arriba a la derecha
233 = doble abajo (subtiende dos bases)
234 = doble arriba (extiende dos bases)
240 = subíndice iota (solo ese diacrítico griego)

Escritura bidireccional

Seis propiedades de caracteres 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 características principales de Unicode es la compatibilidad con la visualización de texto bidireccional ( Bidi ) de derecha a izquierda (R a L) y de izquierda a derecha (L a R). El algoritmo bidireccional Unicode UAX9 [19] describe el proceso de presentación de texto alterando las direcciones de la escritura. Por ejemplo, permite una cita en hebreo en un texto en inglés. Bidi_Character_Type marca el comportamiento de un personaje en 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 la escritura bidireccional.

Cada punto de código tiene una propiedad llamada Bidi_Class . Define su comportamiento en un texto bidireccional según 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 agregan opciones adicionales a Unicode. Doce caracteres tienen la propiedad Bidi_Control=Sí : ALM, FSI, LRE, LRI, LRM, LRO, PDF, PDI, RLE, RLI, RLM y RLO como se indica en la tabla. Estos son caracteres de control de formato invisibles, utilizados únicamente por el algoritmo y sin ningún efecto fuera del formato bidireccional. [19] A pesar del nombre, son caracteres de formato, no de control, y tienen la categoría General "Otro, formato (Cf)" en la definición de Unicode.

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

Dos propiedades de caracteres son relevantes para determinar una imagen reflejada de un glifo en texto bidireccional: Bidi_Mirrored=Sí indica que el glifo debe reflejarse cuando se escribe de R a L. La propiedad Bidi_Mirroring_Glyph=U+ hhhh puede entonces apuntar al carácter reflejado. Por ejemplo, los corchetes "()" se reflejan de esta manera. Dar forma a escrituras cursivas como el árabe y reflejar glifos que tienen una dirección no forma parte del algoritmo.

Valores y tipos numéricos

Decimal

Los caracteres se clasifican con un tipo Numérico . [1] Caracteres como fracciones, subíndices, superíndices, números romanos, numeradores de moneda, números entre círculos y dígitos específicos de escritura son de tipo numérico. Tienen un valor numérico que puede ser decimal, incluyendo 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 sí tienen un valor numérico se separan 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 simple. Sólo los caracteres que forman parte de un rango codificado contiguo del 0 al 9 tienen el tipo numérico Decimal. Otros dígitos, como los superíndices, tienen dígitos de tipo numérico. Todos los caracteres numéricos como fracciones y números romanos terminan en el tipo "Numérico". El efecto deseado es que un analizador simple pueda usar estos valores numéricos decimales, sin distraerse, por ejemplo, con un superíndice numérico o una fracción. Ochenta y tres ideogramas CJK que representan un número, incluidos los utilizados para contabilidad, están escritos en forma numérica.

Por otro lado, los caracteres que podrían tener un valor numérico como segundo significado todavía están marcados como tipo numérico "Ninguno" 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 (escriba "Ninguno") y no tienen valor numérico.

Dígitos hexadecimales

Los caracteres hexadecimales son aquellos de la serie con valores hexadecimales del 0 al 9ABCDEF (dieciséis caracteres, valor decimal del 0 al 15). La propiedad del personaje Hex_Digit se establece en Sí cuando un personaje está en una serie de este tipo:

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

Unicode no tiene caracteres separados para valores hexadecimales. Una consecuencia es que cuando se utilizan caracteres normales no es posible determinar si se pretende un valor hexadecimal o incluso si se trata de un valor. Esto debería determinarse 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 contiguo de puntos de código 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 que están reservados, no asignados, etc. Cada carácter asignado tiene un único valor de "nombre de bloque" de los 328 nombres asignados a partir de la versión 15.1 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 valor único 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, disponible en ISO 15924, que está asignado a un sistema de escritura . Aparte de describir los antecedentes y el uso de una secuencia de comandos, Unicode no utiliza una conexión entre una secuencia de comandos y los idiomas que utilizan esa secuencia de comandos. Entonces "hebreo" se refiere a la escritura hebrea, no al idioma hebreo.

El código especial Zyyy para "Común" permite un valor único para un carácter que se utiliza en varios scripts. 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 utilizaba anteriormente el código privado Qaai para este propósito). El código Zzzz "Desconocido" se utiliza para todos los caracteres que no pertenecen a un script (es decir, el valor predeterminado), como símbolos y caracteres de formato. En general, los caracteres de una única escritura pueden estar dispersos en varios bloques, como los caracteres latinos . Y también al revés: pueden estar presentes varias escrituras en un solo bloque, por ejemplo, el bloque Símbolos tipo letra 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 escritura ISO existentes "Zmth" (notación matemática), "Zsym" (símbolo) y "Zsye" (símbolo, variante emoji) no se utilizan en Unicode. La propiedad "Script" también está en blanco para puntos de código que no son caracteres tipográficos, 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 A MAYÚSCULA LATINA y U+05D0 א LETRA HEBREA ALEF .

Propiedades de normalización

Descomposiciones, tipo de descomposición, clase de combinación canónica, exclusiones de composición y más.

Edad

La edad es la versión del Estándar en la que se designó por primera vez el punto del código. El número de versión se reduce a la numeración major.minor, aunque se utilizan números de versión más detallados: las versiones 4.0.0 y 4.0.1 se denominan 4.0 como Age. Dadas las versiones, la edad puede estar en el rango: 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 y 15,1. [21] Los valores largos para Edad comienzan en V y usan un guión bajo en lugar de un punto: V1_1, por ejemplo. [2] Los puntos de código sin un valor de edad específicamente asignado tienen el valor "NA", con la forma larga "Sin asignar".

Obsoleto

Una vez que se ha definido un personaje, no será eliminado ni reasignado. [22] Sin embargo, un carácter puede estar en desuso , lo que significa que "se desaconseja encarecidamente su uso". [23] A partir de la versión 15.1 de Unicode, los siguientes quince caracteres están obsoletos: [24]

Límites

El estándar Unicode especifica las siguientes propiedades relacionadas con los límites:

Apodo

Unicode puede asignar nombres de alias a puntos de código. Estos nombres son únicos entre todos los nombres (incluidos los habituales), por lo que pueden utilizarse como identificador. Hay cinco posibles motivos para agregar un alias:

1. Abreviatura
Abreviaturas o acrónimos que aparecen comúnmente para códigos de control, caracteres de formato, espacios y selectores de variación.
Por ejemplo, U+00A0 ESPACIO NO-BREAK tiene alias NBSP . A veces presentado en una caja:  
nbsp
.
2. Controlar
Los nombres ISO 6429 para las funciones de control C0 y C1 y nombres similares que aparecen comúnmente se agregan como alias al carácter.
Por ejemplo, U+0008 <control-0008> tiene el alias RETROCESO .
3. Corrección
Esta es una corrección para un "problema grave" en el nombre del personaje principal, generalmente un error.
Por ejemplo, U+2118SCRIPT CAPITAL P es en realidad una p minúscula , por lo que se le asigna el nombre de alias WEIERSTRASS ELIPTIC FUNCTION : "en realidad, esto tiene la forma de una p caligráfica minúscula, a pesar de su nombre, y a través del alias la ortografía correcta es agregado." En descripciones, con el símbolo anterior ※ .
4. Alternativo
Un nombre alternativo muy utilizado para un personaje.
Ejemplo: U+FEFF ANCHO CERO ESPACIO SIN INTERRUPCIÓN tiene una MARCA DE ORDEN DE BYTE alternativa .
5. ficción
Varias etiquetas documentadas para puntos del código de control C1 que nunca fueron aprobados en ninguna norma ( figment = fingido, en ficción).
Por ejemplo, U+0099 <control-0099> tiene un alias de producto INTRODUCTOR DE CARÁCTER GRÁFICO ÚNICO . Este nombre es un concepto arquitectónico de los primeros borradores de ISO/IEC 10646-1, pero nunca fue aprobado ni estandarizado.

enlaces externos

Referencias

  1. ^ abcde "Propiedades de los personajes" (PDF) . La versión estándar Unicode 15 . Mountain View, CA: El consorcio Unicode. Septiembre de 2022. ISBN 978-1-936213-32-0. Consultado el 16 de septiembre de 2022 .
  2. ^ abc "Anexo n.º 44 del estándar Unicode: base de datos de caracteres Unicode". Unicódigo . 2017-06-14.
  3. ^ "Anexo n.º 44 del estándar Unicode: base de datos de caracteres Unicode, 4.2.3 rangos de puntos de código". Unicódigo . 2022-09-02.
  4. ^ UnicodeData.txt
  5. ^ "UCD: alias de nombres". Base de datos de caracteres Unicode . Consorcio Unicode. 2019-03-08.
  6. ^ "Estándares de diseño de personajes: personajes espaciales". Estándares de diseño de personajes . Microsoft . 1998–1999. Archivado desde el original el 14 de marzo de 2010 . Consultado el 18 de mayo de 2009 .
  7. ^ El estándar Unicode 5.0, edición impresa, p. 205; también disponible en el "Capítulo 6: Sistemas de escritura y puntuación" (PDF) . El estándar Unicode 5.0, edición electrónica. Consorcio Unicode . 2006-07-14. pag. 11 (205) . Consultado el 22 de diciembre de 2022 .
  8. ^ "Puntuación general" (PDF) . El estándar Unicode 5.1 . Unicode Inc. 1991–2008 . Consultado el 13 de mayo de 2009 .
  9. ^ Sargent, Murray III (29 de agosto de 2006). "Codificación Unicode de texto casi sin formato de matemáticas (versión 2)". Nota técnica Unicode n.º 28 . Unicode Inc. págs. 19-20 . Consultado el 19 de mayo de 2009 .
  10. ^ Gillam, Richard (2002). Unicode desmitificado: una guía práctica para programadores sobre el estándar de codificación . Addison-Wesley. ISBN 0-201-70052-2.
  11. ^ ab Hickson, Ian . "12.5 Referencias de personajes con nombre". Estándar HTML . QUÉ WG .
  12. ^ Wolframio . "\[Espacio grueso negativo]". Documentación de Wolfram Language .
  13. ^ Wolframio . "\[EspacioMedioNegativo]". Documentación de Wolfram Language .
  14. ^ Wolframio . "\[NegativoThinSpace]". Documentación de Wolfram Language .
  15. ^ Wolframio . "\[Espacio muy delgado negativo]". Documentación de Wolfram Language .
  16. ^ Faltstrom, P., ed. (Agosto de 2010). "Ancho cero sin unión". Los puntos de código Unicode y nombres de dominio internacionalizados para aplicaciones (IDNA). IETF . segundo. A.1. doi : 10.17487/RFC5892 . RFC 5892 . Consultado el 4 de septiembre de 2019 .
  17. ^ Faltstrom, P., ed. (Agosto de 2010). "Unidor de ancho cero". Los puntos de código Unicode y nombres de dominio internacionalizados para aplicaciones (IDNA). IETF . segundo. A.2. doi : 10.17487/RFC5892 . RFC 5892 . Consultado el 4 de septiembre de 2019 .
  18. ^ "Anexo n.º 44 del estándar Unicode, base de datos de caracteres Unicode".
  19. ^ ab "Anexo n.º 9 del estándar Unicode: algoritmo bidireccional Unicode". El estándar Unicode . 2017-05-14.
  20. ^ "Anexo n.º 24 del estándar Unicode: propiedad de secuencia de comandos Unicode". El estándar Unicode . 2015-06-01.
  21. ^ "UCD: Edad derivada". Base de datos de caracteres Unicode . Consorcio Unicode. 2023-07-28.
  22. ^ "Políticas de estabilidad de codificación de caracteres Unicode". Unicódigo . Consorcio Unicode . 2017-06-23 . Consultado el 25 de julio de 2021 . Una vez codificado un carácter, no se moverá ni eliminará.
  23. ^ "3.4: Caracteres y codificación, D13: Carácter obsoleto" (PDF) . El estándar Unicode, versión 15.0. Mountain View: Consorcio Unicode . 2022-09-13. ISBN 978-1-936213-32-0. Consultado el 16 de septiembre de 2022 .
  24. ^ "PropList-15.1.0.txt". Unicódigo . Consorcio Unicode . 2023-08-01 . Consultado el 12 de septiembre de 2023 .
  25. ^ "Capítulo 23.3: Caracteres de formato obsoleto" (PDF) . El estándar Unicode, versión 13.0. Mountain View: Consorcio Unicode . 2020-03-10. ISBN 978-1-936213-26-9. Consultado el 25 de julio de 2021 .
  26. ^ "23.9: Caracteres de etiqueta, uso obsoleto para etiquetado de idiomas" (PDF) . El estándar Unicode, versión 13.0. Mountain View: Consorcio Unicode . 2020-03-10. ISBN 978-1-936213-26-9. Consultado el 25 de julio de 2021 .