2010-09-17 6 views
6

Sé que unicode contiene todos los caracteres de la mayoría de las aplicaciones del mundo ... pero ¿qué pasa con los dígitos? ¿Son parte de unicode o no? No pude encontrar una respuesta directa. Graciasdígitos nacionales (no árabes) en Unicode?

+1

Creo que esta es una buena pregunta ¡Deje a suponer que estamos haciendo una calculadora entonces el resultado de 12 + 78 es igual a 12 + 78 – Thunder

Respuesta

10

Como ya se indicó, los números indoárabes (0,1, .., 9) se incluyen en Unicode, heredados de ASCII. Si está hablando de representación de números en otros idiomas, la respuesta es sí, también son parte de Unicode.

//numbers (0-9) in Malayalam (language spoken in Kerala, India) 
൦ ൧ ൨ ൩ ൪ ൫ ൬ ൭ ൮ ൯ 
//numbers (0-9) in Hindi (India's national language) 
० १ २ ३ ४ ५ ६ ७ ८ ९ 

Puede utilizar \p{N} o \p{Number} en una expresión regular para adaptarse a cualquier tipo de numeric character in any script.

Este document (Página-3) describe los puntos de código Unicode para los dígitos Malayalam.

+1

Aunque '\ p {N}' o '\ p {Number}' parece funcionar para muchos entornos locales (Malayalam, Hindi, Árabe), falla en algunos tipos. Por ejemplo, [japonés] (http://en.wikipedia.org/wiki/Japanese_numerals), [hebreo] (http://en.wikipedia.org/wiki/Hebrew_numerals), chino y algunos otros fallan. – bovine

1

Sí, son - puntos de código 0030 a 0039, como se puede ver, p. en decodeunicode.org

Por cierto, los puntos de código 0000-007E son lo mismo que ASCII (0-127, 128+ ya no es ASCII), por lo que cualquier cosa que pueda encontrar en ASCII lo puede encontrar en Unicode.

+1

y observe que Unicode contiene muchos más dígitos que acaba de 0-9 . –

+0

@Hans Kesting: De hecho, p. subíndices y superíndices: http://www.decodeunicode.org/en/superscripts_and_subscripts, números griegos antiguos: http://www.decodeunicode.org/en/ancient_greek_numbers y otros – Piskvor

1

Sí creo que sí: Information Taken From Here

U+0030 0 30 DIGIT ZERO 
U+0031 1 31 DIGIT ONE 
U+0032 2 32 DIGIT TWO 
U+0033 3 33 DIGIT THREE 
U+0034 4 34 DIGIT FOUR 
U+0035 5 35 DIGIT FIVE 
U+0036 6 36 DIGIT SIX 
U+0037 7 37 DIGIT SEVEN 
U+0038 8 38 DIGIT EIGHT 
U+0039 9 39 DIGIT NINE 
1

Usted puede responder a esa pregunta a sí mismo: si no fueran parte de Unicode, esto reduciría drásticamente la utilidad en lugar de Unicode, ¿no le parece?

Básicamente, cualquier texto que necesite usar números no se podría representar utilizando puntos de código Unicode. (Esto supone que no cambia entre diferentes codificaciones de caracteres en un texto: no conozco un solo software/lenguaje de programación que admita esto, y por una buena razón.)

Si tales preguntas se recortan arriba, necesita leer The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) por Joel Spolsky. Seriamente. Ve a leerlo

+0

Bueno, como muchos idiomas usan números arábigos (ruso, ej.), No estaba seguro de si no se tomaron de ASCII. – Petr

+0

@Petr: Como dije, ¡no puedes cambiar la codificación en el medio del texto! "Tomado de ASCII" por lo tanto no tiene sentido. El texto completo, cada carácter, debe ser representable en Unicode. –

+0

En realidad, es muy probable que esté utilizando software que le permita "ir y venir entre codificaciones de caracteres diferentes en un texto" * ahora mismo * - ISO 2022 es básicamente una metacodificación que le permite cambiar entre subcoderencias a través de secuencias de escape, y es compatible con todos los navegadores web comunes. –

3

En resumen: sí, por supuesto. Hay tres categorías en UNICODE que contienen diversas representaciones de los dígitos y números:

  • , dígito decimal (characters) - por ejemplo, Árabe, tailandés, dígitos Devanagari;
  • Número, letra (characters) - por ejemplo, Números romanos;
  • Número, Otro (characters) - por ejemplo, fracciones.
Cuestiones relacionadas