2012-04-28 19 views

Respuesta

54

Unicode es una forma de asignar números únicos (llamados puntos de código) a caracteres de casi todos los idiomas en uso activo en la actualidad, además de muchos otros caracteres como símbolos matemáticos. Hay muchas formas de codificar cadenas Unicode como bytes, como UTF-8 y UTF-16.

ASCII asigna valores solo a 128 caracteres (a-z, A-Z, 0-9, espacio, algunos signos de puntuación y algunos caracteres de control).

Para cada carácter que tiene un valor ASCII, el punto de código Unicode y el valor ASCII de ese carácter son los mismos.

En la mayoría de las aplicaciones modernas, debería preferir utilizar cadenas Unicode en lugar de ASCII. Esto, por ejemplo, le permitirá tener usuarios con caracteres acentuados en su nombre o dirección, y para localizar su interfaz en otros idiomas además del inglés.

+0

Pero, ¿cómo uso los caracteres Unicode? Puedo usar los caracteres ascii simplemente encasillando los caracteres en ints, pero ¿puedo hacer lo mismo con los caracteres Unicode? – Ghost

+0

@Ghost: No está claro por qué necesitas convertir personajes en ints. ¿Que estás tratando de hacer? –

+0

lo que estoy diciendo es que para obtener el valor ascii de un personaje necesito encasillarlo: char a = 'a'; int b = (int) a // valor ascii de – Ghost

14

Los primeros 128 Unicode puntos de código son los mismos que en ASCII. Luego tienen 100.000 o más.

Hay dos formatos comunes para Unicode, UTF-8 que usa 1-4 bytes para cada valor (para los primeros 128 caracteres, UTF-8 es exactamente lo mismo que ASCII) y UTF-16, que usa 2 o 4 bytes.

Cuestiones relacionadas