Diferencia entre revisiones de «Lenguaje Unicode»

(Fuente)
m (Texto reemplazado: «<div align="justify">» por «»)
 
Línea 1: Línea 1:
<div align="justify">{{Definición|Nombre=Lenguaje Unicode |imagen=unicode-table-interactive.jpg|concepto=Sistema para representar caracteres de todos los diferentes idiomas en el mundo}}  
+
{{Definición|Nombre=Lenguaje Unicode |imagen=unicode-table-interactive.jpg|concepto=Sistema para representar caracteres de todos los diferentes idiomas en el mundo}}  
 
'''Unicode''' es un sistema para representar caracteres de todos los diferentes idiomas en el mundo. Se diseñó para intercambiar documentos en diferentes idiomas sin problemas y surge a finales de [[1987|1987]]<br><br>  
 
'''Unicode''' es un sistema para representar caracteres de todos los diferentes idiomas en el mundo. Se diseñó para intercambiar documentos en diferentes idiomas sin problemas y surge a finales de [[1987|1987]]<br><br>  
  
 
== ¿Qué es Unicode?<br>  ==
 
== ¿Qué es Unicode?<br>  ==
<div align="justify">Unicode proporciona un número único para cada carácter, sin importar la plataforma, ni el programa, ni el idioma. Cuando Python analiza un documento [[XML|XML]], todos los datos se almacenan en memoria como Unicode. [[Python|Python]] trabaja con Unicode desde la versión 2.0 del lenguaje. El paquete XML utiliza Unicode para almacenar todos los datos XML, pero puede usar Unicode en cualquier parte. <br>Unicode representa cada carácter como un número de 2 bytes, de 0 a 65535. Cada número de 2 bytes representa un único carácter utilizado en al menos un idioma del mundo (los caracteres que se usan en más de un idioma tienen el mismo código numérico). Hay exactamente un número por carácter, y exactamente un carácter por número. Los datos de Unicode nunca son ambiguos. <br>El establecimiento de Unicode ha sido un ambicioso proyecto para reemplazar los esquemas de codificación de caracteres existentes, muchos de los cuales están muy limitados en tamaño y son incompatibles con entornos plurilingües. Unicode se ha vuelto el más extenso y completo esquema de codificación de caracteres, siendo el dominante en la internacionalización y adaptación local del software informático. El estándar ha sido implementado en un número considerable de tecnologías recientes, que incluyen XML, [[Java|Java]] y [[Sistemas operativos|sistemas operativos]] modernos.<br>Las computadoras sólo trabajan con números. Almacenan letras y otros caracteres mediante la asignación de un número a cada uno. Antes de que se inventara Unicode, existían cientos de sistemas de codificación distintos para asignar estos números. Ninguna codificación específica podía contener caracteres suficientes: por ejemplo, la [[Unión Europea|Unión Europea]], por sí sola, necesita varios sistemas de codificación distintos para cubrir todos sus idiomas. Incluso para un solo idioma como el inglés, no había un único sistema de codificación que se adecuara a todas las letras, signos de puntuación y símbolos técnicos de uso común.<br>Toda [[Computadora|computadora]] (especialmente los [[Servidores|servidores]]) necesita ser compatible con muchos sistemas de codificación distintos; sin embargo, cada vez que los datos se traspasan entre distintos sistemas de codificación o plataformas, dichos datos siempre corren el riesgo de sufrir daños.<br>Unicode proporciona un número único para cada carácter, sin importar la plataforma, ni el programa, ni el idioma.<br>Para ello, este método utiliza dos [[Bytes|byte]] por cada carácter. Cómo referencia, en el formato [[ASCII|ASCII]] clásico es suficiente un solo byte para representar cada carácter. Esta mayor cantidad de espacio, normalmente está prevista por los programas y sistemas operativos que soportan esta codificación, y no debería representar un problema en circunstancias normales.<br><br>  
+
Unicode proporciona un número único para cada carácter, sin importar la plataforma, ni el programa, ni el idioma. Cuando Python analiza un documento [[XML|XML]], todos los datos se almacenan en memoria como Unicode. [[Python|Python]] trabaja con Unicode desde la versión 2.0 del lenguaje. El paquete XML utiliza Unicode para almacenar todos los datos XML, pero puede usar Unicode en cualquier parte. <br>Unicode representa cada carácter como un número de 2 bytes, de 0 a 65535. Cada número de 2 bytes representa un único carácter utilizado en al menos un idioma del mundo (los caracteres que se usan en más de un idioma tienen el mismo código numérico). Hay exactamente un número por carácter, y exactamente un carácter por número. Los datos de Unicode nunca son ambiguos. <br>El establecimiento de Unicode ha sido un ambicioso proyecto para reemplazar los esquemas de codificación de caracteres existentes, muchos de los cuales están muy limitados en tamaño y son incompatibles con entornos plurilingües. Unicode se ha vuelto el más extenso y completo esquema de codificación de caracteres, siendo el dominante en la internacionalización y adaptación local del software informático. El estándar ha sido implementado en un número considerable de tecnologías recientes, que incluyen XML, [[Java|Java]] y [[Sistemas operativos|sistemas operativos]] modernos.<br>Las computadoras sólo trabajan con números. Almacenan letras y otros caracteres mediante la asignación de un número a cada uno. Antes de que se inventara Unicode, existían cientos de sistemas de codificación distintos para asignar estos números. Ninguna codificación específica podía contener caracteres suficientes: por ejemplo, la [[Unión Europea|Unión Europea]], por sí sola, necesita varios sistemas de codificación distintos para cubrir todos sus idiomas. Incluso para un solo idioma como el inglés, no había un único sistema de codificación que se adecuara a todas las letras, signos de puntuación y símbolos técnicos de uso común.<br>Toda [[Computadora|computadora]] (especialmente los [[Servidores|servidores]]) necesita ser compatible con muchos sistemas de codificación distintos; sin embargo, cada vez que los datos se traspasan entre distintos sistemas de codificación o plataformas, dichos datos siempre corren el riesgo de sufrir daños.<br>Unicode proporciona un número único para cada carácter, sin importar la plataforma, ni el programa, ni el idioma.<br>Para ello, este método utiliza dos [[Bytes|byte]] por cada carácter. Cómo referencia, en el formato [[ASCII|ASCII]] clásico es suficiente un solo byte para representar cada carácter. Esta mayor cantidad de espacio, normalmente está prevista por los programas y sistemas operativos que soportan esta codificación, y no debería representar un problema en circunstancias normales.<br><br>  
 
== Un poco de historia<br>  ==
 
== Un poco de historia<br>  ==
<div align="justify">Antes de Unicode, había diferentes sistemas de codificación de caracteres para cada idioma, cada uno usando los mismos números (0-255) para representar los caracteres de ese lenguaje. Algunos (como el ruso) tienen varios estándares incompatibles que representan los mismos caracteres; otros idiomas (como el japonés) tienen tantos caracteres que precisan más de un byte. Intercambiar documentos entre estos sistemas era difícil porque no había manera de que un computador supiera con certeza qué esquema de codificación de caracteres había usado el autor del documento; el computador sólo veía números, y los números pueden significar muchas cosas. Para resolver estos problemas se diseñó Unicode. <br>El proyecto Unicode se inició a finales de [[1987|1987]], tras conversaciones entre los ingenieros de [[Apple|Apple]] y [[Xerox|Xerox]]: [[Joe Becker|Joe Becker]], [[Lee Collins|Lee Collins]] y [[Mark Davis|Mark Davis]]. Como resultado de su colaboración, en agosto de 1988 se publicó el primer borrador de Unicode bajo el nombre de [[Unicode88|Unicode88]]. Esta primera versión, con códigos de 16 bits, se publicó asumiendo que solo se codificarían los caracteres necesarios para el uso moderno.<br>Durante el año [[1989|1989]] el trabajo continuó con la adición de colaboradores de otras compañías como [[Microsoft|Microsoft o]] [[Sun Microsystems|Sun Microsystems]]. El Consorcio Unicode se formó el [[3 de febrero|3 de febrero]] de [[1991|1991]] y en octubre de 1991 se publicó la primera versión del estándar. La segunda versión, incluyendo escritura ideográfica Han se publicó en junio de [[1992|1992]].  
+
Antes de Unicode, había diferentes sistemas de codificación de caracteres para cada idioma, cada uno usando los mismos números (0-255) para representar los caracteres de ese lenguaje. Algunos (como el ruso) tienen varios estándares incompatibles que representan los mismos caracteres; otros idiomas (como el japonés) tienen tantos caracteres que precisan más de un byte. Intercambiar documentos entre estos sistemas era difícil porque no había manera de que un computador supiera con certeza qué esquema de codificación de caracteres había usado el autor del documento; el computador sólo veía números, y los números pueden significar muchas cosas. Para resolver estos problemas se diseñó Unicode. <br>El proyecto Unicode se inició a finales de [[1987|1987]], tras conversaciones entre los ingenieros de [[Apple|Apple]] y [[Xerox|Xerox]]: [[Joe Becker|Joe Becker]], [[Lee Collins|Lee Collins]] y [[Mark Davis|Mark Davis]]. Como resultado de su colaboración, en agosto de 1988 se publicó el primer borrador de Unicode bajo el nombre de [[Unicode88|Unicode88]]. Esta primera versión, con códigos de 16 bits, se publicó asumiendo que solo se codificarían los caracteres necesarios para el uso moderno.<br>Durante el año [[1989|1989]] el trabajo continuó con la adición de colaboradores de otras compañías como [[Microsoft|Microsoft o]] [[Sun Microsystems|Sun Microsystems]]. El Consorcio Unicode se formó el [[3 de febrero|3 de febrero]] de [[1991|1991]] y en octubre de 1991 se publicó la primera versión del estándar. La segunda versión, incluyendo escritura ideográfica Han se publicó en junio de [[1992|1992]].  
 
<br>  
 
<br>  
  
Línea 13: Línea 13:
  
 
== Presentación de Unicode<br>  ==
 
== Presentación de Unicode<br>  ==
<div align="justify">&gt;&gt;&gt; s = u'Dive in' <br>&gt;&gt;&gt; s<br>u'Dive in'<br>&gt;&gt;&gt; print s <br>Dive in<br>Para crear una cadena Unicode en lugar de una ASCII normal, se añade la letra “u” antes de la cadena. Esta cadena en particular no tiene ningún carácter que no sea ASCII. Esto no es problema; Unicode es un superconjunto de ASCII, así que también se puede almacenar una cadena ASCII normal como Unicode.<br>Cuando [[Python|Python]] imprime una cadena intentará convertirla a la codificación por omisión, que suele ser [[ASCII|ASCII]]. Como la cadena Unicode está hecha de caracteres que a la vez son ASCII, imprimirlos tiene el mismo resultado que imprimir una cadena ASCII normal; la conversión es consistente, y si no supiera que “s” era una cadena Unicode nunca llegaría a notar la diferencia.<br>  
+
&gt;&gt;&gt; s = u'Dive in' <br>&gt;&gt;&gt; s<br>u'Dive in'<br>&gt;&gt;&gt; print s <br>Dive in<br>Para crear una cadena Unicode en lugar de una ASCII normal, se añade la letra “u” antes de la cadena. Esta cadena en particular no tiene ningún carácter que no sea ASCII. Esto no es problema; Unicode es un superconjunto de ASCII, así que también se puede almacenar una cadena ASCII normal como Unicode.<br>Cuando [[Python|Python]] imprime una cadena intentará convertirla a la codificación por omisión, que suele ser [[ASCII|ASCII]]. Como la cadena Unicode está hecha de caracteres que a la vez son ASCII, imprimirlos tiene el mismo resultado que imprimir una cadena ASCII normal; la conversión es consistente, y si no supiera que “s” era una cadena Unicode nunca llegaría a notar la diferencia.<br>  
 
== Tratamiento de la información: Formas de codificación<br>  ==
 
== Tratamiento de la información: Formas de codificación<br>  ==
<div align="justify">Los puntos de código de Unicode se identifican por un número entero. Según su arquitectura, un ordenador utilizará unidades de 8, 16 o 32 bits para representar dichos enteros. Las formas de codificación de Unicode reglamentan la forma en que los puntos de código se transformarán en unidades tratables por el computador.<br>Unicode define tres formas de codificación bajo el nombre UTF o Formato de Transformación Unicode (Unicode Transformation Format) <br>UTF-8 — codificación orientada a byte con símbolos de longitud variable. <br>UTF-16 — codificación de 16 bits de longitud variable optimizada para la representación del plano básico multilingüe (BMP).  
+
Los puntos de código de Unicode se identifican por un número entero. Según su arquitectura, un ordenador utilizará unidades de 8, 16 o 32 bits para representar dichos enteros. Las formas de codificación de Unicode reglamentan la forma en que los puntos de código se transformarán en unidades tratables por el computador.<br>Unicode define tres formas de codificación bajo el nombre UTF o Formato de Transformación Unicode (Unicode Transformation Format) <br>UTF-8 — codificación orientada a byte con símbolos de longitud variable. <br>UTF-16 — codificación de 16 bits de longitud variable optimizada para la representación del plano básico multilingüe (BMP).  
 
Las formas de codificación se limitan a describir el modo en que se representan los puntos de código en formato inteligible por la máquina. A partir de las 3 formas identificadas se definen 7 esquemas de codificación.  
 
Las formas de codificación se limitan a describir el modo en que se representan los puntos de código en formato inteligible por la máquina. A partir de las 3 formas identificadas se definen 7 esquemas de codificación.  
  
 
== <br>Esquemas de codificación  ==
 
== <br>Esquemas de codificación  ==
<div align="justify"><br>Los esquemas de codificación tratan de la forma en que se serializa la información codificada. La seguridad en los intercambios de información entre sistemas heterogéneos requiere la implementación de sistemas que permitan determinar el orden correcto de los bits y bytes y garantizar que la reconstrucción de la información es correcta. Una diferencia fundamental entre [[Procesadores de PC|procesadores]] es el orden de disposición de los [[Bytes|byte]] en palabras de 16 y 32 bits, lo que se denomina endianness. Los esquemas de codificación deben garantizar que los extremos de una comunicación saben cómo interpretar la información recibida. A partir de las 3 formas de codificación se definen 7 esquemas. A pesar de que comparten nombres, no debe confundirse esquemas y formas de codificación.  
+
<br>Los esquemas de codificación tratan de la forma en que se serializa la información codificada. La seguridad en los intercambios de información entre sistemas heterogéneos requiere la implementación de sistemas que permitan determinar el orden correcto de los bits y bytes y garantizar que la reconstrucción de la información es correcta. Una diferencia fundamental entre [[Procesadores de PC|procesadores]] es el orden de disposición de los [[Bytes|byte]] en palabras de 16 y 32 bits, lo que se denomina endianness. Los esquemas de codificación deben garantizar que los extremos de una comunicación saben cómo interpretar la información recibida. A partir de las 3 formas de codificación se definen 7 esquemas. A pesar de que comparten nombres, no debe confundirse esquemas y formas de codificación.  
  
 
== <br>Fuente  ==
 
== <br>Fuente  ==

última versión al 21:23 26 ago 2019

Lenguaje Unicode
Información sobre la plantilla
Unicode-table-interactive.jpg
Concepto:Sistema para representar caracteres de todos los diferentes idiomas en el mundo

Unicode es un sistema para representar caracteres de todos los diferentes idiomas en el mundo. Se diseñó para intercambiar documentos en diferentes idiomas sin problemas y surge a finales de 1987

¿Qué es Unicode?

Unicode proporciona un número único para cada carácter, sin importar la plataforma, ni el programa, ni el idioma. Cuando Python analiza un documento XML, todos los datos se almacenan en memoria como Unicode. Python trabaja con Unicode desde la versión 2.0 del lenguaje. El paquete XML utiliza Unicode para almacenar todos los datos XML, pero puede usar Unicode en cualquier parte.
Unicode representa cada carácter como un número de 2 bytes, de 0 a 65535. Cada número de 2 bytes representa un único carácter utilizado en al menos un idioma del mundo (los caracteres que se usan en más de un idioma tienen el mismo código numérico). Hay exactamente un número por carácter, y exactamente un carácter por número. Los datos de Unicode nunca son ambiguos.
El establecimiento de Unicode ha sido un ambicioso proyecto para reemplazar los esquemas de codificación de caracteres existentes, muchos de los cuales están muy limitados en tamaño y son incompatibles con entornos plurilingües. Unicode se ha vuelto el más extenso y completo esquema de codificación de caracteres, siendo el dominante en la internacionalización y adaptación local del software informático. El estándar ha sido implementado en un número considerable de tecnologías recientes, que incluyen XML, Java y sistemas operativos modernos.
Las computadoras sólo trabajan con números. Almacenan letras y otros caracteres mediante la asignación de un número a cada uno. Antes de que se inventara Unicode, existían cientos de sistemas de codificación distintos para asignar estos números. Ninguna codificación específica podía contener caracteres suficientes: por ejemplo, la Unión Europea, por sí sola, necesita varios sistemas de codificación distintos para cubrir todos sus idiomas. Incluso para un solo idioma como el inglés, no había un único sistema de codificación que se adecuara a todas las letras, signos de puntuación y símbolos técnicos de uso común.
Toda computadora (especialmente los servidores) necesita ser compatible con muchos sistemas de codificación distintos; sin embargo, cada vez que los datos se traspasan entre distintos sistemas de codificación o plataformas, dichos datos siempre corren el riesgo de sufrir daños.
Unicode proporciona un número único para cada carácter, sin importar la plataforma, ni el programa, ni el idioma.
Para ello, este método utiliza dos byte por cada carácter. Cómo referencia, en el formato ASCII clásico es suficiente un solo byte para representar cada carácter. Esta mayor cantidad de espacio, normalmente está prevista por los programas y sistemas operativos que soportan esta codificación, y no debería representar un problema en circunstancias normales.

Un poco de historia

Antes de Unicode, había diferentes sistemas de codificación de caracteres para cada idioma, cada uno usando los mismos números (0-255) para representar los caracteres de ese lenguaje. Algunos (como el ruso) tienen varios estándares incompatibles que representan los mismos caracteres; otros idiomas (como el japonés) tienen tantos caracteres que precisan más de un byte. Intercambiar documentos entre estos sistemas era difícil porque no había manera de que un computador supiera con certeza qué esquema de codificación de caracteres había usado el autor del documento; el computador sólo veía números, y los números pueden significar muchas cosas. Para resolver estos problemas se diseñó Unicode.
El proyecto Unicode se inició a finales de 1987, tras conversaciones entre los ingenieros de Apple y Xerox: Joe Becker, Lee Collins y Mark Davis. Como resultado de su colaboración, en agosto de 1988 se publicó el primer borrador de Unicode bajo el nombre de Unicode88. Esta primera versión, con códigos de 16 bits, se publicó asumiendo que solo se codificarían los caracteres necesarios para el uso moderno.
Durante el año 1989 el trabajo continuó con la adición de colaboradores de otras compañías como Microsoft o Sun Microsystems. El Consorcio Unicode se formó el 3 de febrero de 1991 y en octubre de 1991 se publicó la primera versión del estándar. La segunda versión, incluyendo escritura ideográfica Han se publicó en junio de 1992.

Ventajas



La verdadera ventaja de Unicode, es su capacidad de almacenar caracteres que no son ASCII, como la “ñ” española. El carácter Unicode para la ñ es 0xf1 en hexadecimal (241 en decimal), que se puede escribir así: \xf1

Presentación de Unicode

>>> s = u'Dive in'
>>> s
u'Dive in'
>>> print s
Dive in
Para crear una cadena Unicode en lugar de una ASCII normal, se añade la letra “u” antes de la cadena. Esta cadena en particular no tiene ningún carácter que no sea ASCII. Esto no es problema; Unicode es un superconjunto de ASCII, así que también se puede almacenar una cadena ASCII normal como Unicode.
Cuando Python imprime una cadena intentará convertirla a la codificación por omisión, que suele ser ASCII. Como la cadena Unicode está hecha de caracteres que a la vez son ASCII, imprimirlos tiene el mismo resultado que imprimir una cadena ASCII normal; la conversión es consistente, y si no supiera que “s” era una cadena Unicode nunca llegaría a notar la diferencia.

Tratamiento de la información: Formas de codificación

Los puntos de código de Unicode se identifican por un número entero. Según su arquitectura, un ordenador utilizará unidades de 8, 16 o 32 bits para representar dichos enteros. Las formas de codificación de Unicode reglamentan la forma en que los puntos de código se transformarán en unidades tratables por el computador.
Unicode define tres formas de codificación bajo el nombre UTF o Formato de Transformación Unicode (Unicode Transformation Format)
UTF-8 — codificación orientada a byte con símbolos de longitud variable.
UTF-16 — codificación de 16 bits de longitud variable optimizada para la representación del plano básico multilingüe (BMP). Las formas de codificación se limitan a describir el modo en que se representan los puntos de código en formato inteligible por la máquina. A partir de las 3 formas identificadas se definen 7 esquemas de codificación.


Esquemas de codificación


Los esquemas de codificación tratan de la forma en que se serializa la información codificada. La seguridad en los intercambios de información entre sistemas heterogéneos requiere la implementación de sistemas que permitan determinar el orden correcto de los bits y bytes y garantizar que la reconstrucción de la información es correcta. Una diferencia fundamental entre procesadores es el orden de disposición de los byte en palabras de 16 y 32 bits, lo que se denomina endianness. Los esquemas de codificación deben garantizar que los extremos de una comunicación saben cómo interpretar la información recibida. A partir de las 3 formas de codificación se definen 7 esquemas. A pesar de que comparten nombres, no debe confundirse esquemas y formas de codificación.


Fuente