que - unicode number of characters
¿Qué necesito saber sobre Unicode? (11)
Siendo un desarrollador de aplicaciones, ¿necesito saber Unicode?
A riesgo de simplemente agregar otro enlace, unicode.org es un recurso espectacular.
En resumen, es un reemplazo para ASCII que está diseñado para manejar, literalmente, todos los personajes utilizados por humanos. Unicode tiene varios esquemas de codificación para manejar todos esos caracteres: UTF-8, que es más o menos el estándar en estos días, trabaja muy duro para permanecer un solo byte por carácter, y es idéntico a ASCII para los primeros 7 bits.
(Como una adición, hay una idea errónea popular entre los programadores de que solo necesita saber acerca de Unicode si va a hacer la internacionalización. Si bien es cierto que es un uso, no es el único. Por ejemplo, estoy trabajando en una proyecto que solo usará texto en inglés, pero con una gran cantidad de símbolos matemáticos de lujo. Mover todo el proyecto para que sea completamente Unicode resolvió más problemas de los que puedo contar).
Aquí puedes encontrar una gran guía:
No necesita aprender unicode para usarlo, es una norma compleja. Solo necesita saber los problemas principales y cómo las manejan sus herramientas de programación. Para saberlo, consulte el enlace de Galwegian y su lenguaje de programación y documentación ide.
P.EJ :
Puede convertir cualquier caracter de latin-1 a unicode pero no funciona de la otra manera para todos los personajes. PHP te permite ahora que alguna función (como stristr) no funciona con Unicode. Python declara cadena Unicode de esta manera: u "Hola Mundo".
Ese es el tipo de delgado que debes saber.
Sabiendo eso, si no tienes una BUENA razón para no usar unicode, entonces solo úsala.
Una fuente de código (abierta) para manejar Unicode es ICU - Componentes de internacionalización para Unicode. Incluye ICU4J para Java e ICU4C para C y C ++ (presenta la interfaz C; utiliza el compilador C ++).
Unicode es un estándar aceptado por la industria para representar consistentemente el texto que tiene capacidad para representar los sistemas de caracteres del mundo. Todos los desarrolladores deben saberlo, ya que la globalización es una preocupación creciente.
Unicode es un estándar que define códigos numéricos para glifos utilizados en la comunicación escrita. O, como dicen ellos mismos:
El estándar para la representación digital de los caracteres utilizados al escribir todos los idiomas del mundo. Unicode proporciona un medio uniforme para almacenar, buscar e intercambiar texto en cualquier idioma. Es utilizado por todas las computadoras modernas y es la base para el procesamiento de texto en Internet. Unicode es desarrollado y mantenido por el Consorcio Unicode.
Hay muchos errores de programación comunes, pero fáciles de evitar, cometidos por desarrolladores que no se molestan en informarse sobre Unicode y sus codificaciones.
- Primero, vaya a la fuente de información autorizada, detallada y pautas de implementación.
- Como lo mencionaron otros, Joel Spolsky tiene una buena lista de estos errores.
- También me gustan los Diez Mandamientos de Unicode de Elliotte Rusty Harold.
- Los desarrolladores también deben tener cuidado con los ataques de representación canónica .
Algunos de los conceptos clave que debe tener en cuenta son:
- Glyphs : gráficos en concreto utilizados para representar caracteres escritos.
- Composition combina glifos para crear otro glifo.
- Encoding conversión de puntos Unicode a una secuencia de bytes.
- Comparación de las cadenas Unicode sensibles al nivel de Collation .
Unicode es un estándar que enumera caracteres y les otorga ID numéricos únicos (llamados "puntos de código"). Incluye un conjunto de caracteres muy grande y creciente para la mayoría de los lenguajes escritos modernos, y también muchas cosas exóticas como la notación musical griega antigua.
A diferencia de otros esquemas de codificación de caracteres (como ASCII o los estándares ISO-8859), Unicode no dice nada acerca de representar estos caracteres en bytes; solo da un conjunto universal de ID a los personajes. Por lo tanto, es incorrecto decir que Unicode es "un reemplazo de 16 bits para ASCII".
Existen varios esquemas de codificación que pueden representar caracteres Unicode arbitrarios en bytes, incluidos UTF-8, UTF-16 y otros.
Unicode es un juego de caracteres, que aparte de ASCII (que contiene solo letras para inglés, 127 caracteres, un tercio de ellos en realidad son caracteres de control no imprimibles) contiene aproximadamente 2 millones de caracteres, incluidos caracteres de todos los idiomas conocidos (chino, ruso, Griego, árabe, etc.) y algunos idiomas de los que probablemente nunca hayas oído hablar (incluso muchos símbolos de lengua muerta que ya no se usan, pero útiles para archivar documentos antiguos).
Por lo tanto, en lugar de ocuparse de docenas de codificaciones de caracteres diferentes, tiene una codificación para todas ellas (lo que también facilita la combinación de caracteres de diferentes idiomas en una sola cadena de texto, ya que no es necesario cambiar la codificación en algún lugar del medio de una cadena de texto). En realidad, todavía queda mucho espacio libre, estamos lejos de tener los 2 millones de caracteres en uso; el Consorcio Unicode podría agregar fácilmente símbolos para otros 100 idiomas sin siquiera comenzar a temer quedarse sin espacio de símbolos.
Prácticamente cualquier libro en cualquier idioma que pueda encontrar en una biblioteca hoy se puede expresar en Unicode. Unicode es el nombre de la codificación en sí, la forma en que se expresa como "bytes" es un problema diferente. Hay varias maneras de escribir caracteres Unicode como UTF-8 (de uno a seis bytes representan un solo carácter, dependiendo del número de caracteres, el inglés es casi siempre un byte, otros idiomas romanos podrían ser dos o tres, los chinos / japoneses podrían ser más) , UTF-16 (la mayoría de los caracteres son de dos bytes, algunos raramente usados son de cuatro bytes) y UTF-32, cada carácter es de cuatro bytes. Hay otros, pero estos son los dominantes.
Unicode es la codificación predeterminada para muchos sistemas operativos más nuevos (en Mac OS X casi todo es Unicode) y lenguajes de programación (Java usa Unicode como codificación predeterminada, generalmente UTF-16, escuché que Python también lo hace y usará o ya usa UTF- 32). Si alguna vez planea escribir una aplicación que debe mostrar, almacenar o procesar cualquier cosa que no sea texto en inglés simple, será mejor que se acostumbre a Unicode, cuanto antes mejor.
Este artículo de Joel Spolsky debería ayudarte mucho.