Resumen Codigo Ascii y Unicode
Resumen Codigo Ascii y Unicode
Resumen Codigo Ascii y Unicode
RESUMEN CODIGO
ASCII Y UNICODE
Francisco ramos ortega
Qu es Unicode
Unicode es un estndar para la codificacin de caracteres. Una codificacin de
caracteres define una tabla que representa caracteres como nmeros. A cada
caracter se le asocia un nmero. En Unicode a ese nmero se le llama code
point.
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{|}~
Unicode permite representar los caracteres de las lenguas ms habladas en el
mundo, incluso otros smbolos como caracteres matemticos, signos de
puntuacin, etc. adems de caractereres de control como caracteres para
establecer el orden de estricutura (de izquierda a derecha o de derecha a
izquierda). Es decir, Unicode permite escribir con la misma codificacin de
caracteres en cualquiera de las mltiples lenguas soportadas.
El mapa de caracteres Unicode se va ampliando y revisando con el tiempo.
Actualmente la ltima versin de Unicode es la 5.1 y contiene
aproximadamente 100.000 caracteres definidos. No obstante Unicode est
diseado para codificar ms de 1 milln de caracteres. Es decir, hay muchos
huecos en la tabla Unicode que estn por rellenar. Ese es el motivo de que con
el tiempo aparezcan nuevas versiones del estndar. Los huecos de la tabla se
van rellenando con el tiempo.
Codificacin de caracteres (charset) y encodings
Unicode es una codificacin de caracteres (charset). Y una codificacin de
caracteres, recordemos, asocia un nmero a cada caracter o smbolo. Ese
nmero en Unicode se llama code point. Pero esta informacin no es suficiente
para almacenar o transferir texto codificado en Unicode. Es preciso tambin
definir cmo ese nmero (code point) es representado en una secuencia
binaria.
al hablar de Unicode un code point se suele representar como "U+"
concatenado con cuatro cifras hexadecimales. Pero si el code point es mayor
que U+FFFF, se representa con el nmero de caracteres hexadecimales mnimo
necesario para representarlo. Por ejemplo los nmeros griegos antigos
empiezan a codificarse a partir de U+10140. Esto es simplemente una notacin
para referirse a valores de code point. Para referirme a valores de bytes
utilizar la representacin "0x" concatenada con dos cifras hexadecimales.
UTF-8 representa los code points utilizando slo 1 byte. As pues utilizando
UTF-8 la letra "a" (U+0061) queda representada como 0x61. Mucho mejor!
Pero... cmo podemos representar todos los caracteres Unicode en 1 byte? La
respuesta es sencilla: no podemos. El truco es que no he dicho toda la verdad.
UTF-8 no siempre usa 1 byte para representar un code point. UTF-8 es una
codificacin de longitud variable. UTF-8 utiliza entre 1 y 4 bytes para codificar
los code points. Es decir, dependiendo del code point este se representar
usando entre 1 y 4 bytes.
Si el code point tiene un valor entre U+0000 y U+007F se utiliza 1 byte. Todos
los code points en este rango al ser pasados a binario tienen un cero a la
izquierda (7F en hexadecimal es 127 en decimal, 01111111 en binario). De
modo que al empezar a leer Unicode si el primer bit es cero, entonces el
caracter ocupa 1 byte.
Si el code point tiene un valor entre U+0080 y U+07FF se utilizan 2 bytes. El
layout binario ser 110xxxxx 10xxxxxx
Si el code point tiene un valor entre U+0800 y U+FFFF se utilizan 3 bytes. El
layout binario tiene este aspecto: 1110xxxx 10xxxxxx 10xxxxxx
Si el code point tiene un valor entre U+10000 y U+10FFFF se utilizan 4 bytes.
Por lo tanto para textos en lenguas occidentales, donde la mayor parte de los
caracteres estn entre U+0000 y U+007F, UTF-8 es la mejor eleccin para
codificar Unicode puesto que el documento ocupar poco espacio. Adems los
code points entre U+0000 y U+007F se han hecho coincidir con el estndar
ASCII. De este modo un documento guardado usando UTF-8 que utilice slo ese
rango de caracteres es totalmente compatible con ASCII codificado en 8 bits.
Estas caractersticas han hecho de UTF-8 la codificacin ms popular de
Unicode.
"a" se almacena en UTF-8 como 0x61. En UTF-16 se almacena como 0x00 0x61
"" se almacena en UTF-8 como 0xc3 0xb1. En UTF-16 se almacena como 0x00
0xf1
Para ms informacin la pgina de Wikipedia sobre codificaciones de
caracteres contiene al final una tabla comparativa de los caracteres espaoles
representados en ISO-8859-1, UTF-8 y UTF-16. Y la pgina de Wikipedia sobre
Unicode contiene tambin informacin sobre otros encodings para Unicode
como UTF-7, UTF-EBCDIC,...
Big Endian, Little Endian y BOM (Bit Order Mask)
Recapitulemos. Hasta ahora con el mapa de caracteres Unicode obtenemos el
code point para un caracter. Con el code point y eligiendo un encoding (UTF-8,
UTF-16,...) obtenemos la secuencia de bytes que lo representarn. Lo tenemos
todo para transferir o almacenar Unicode? Todava no! Existe un problema y es
que segn la arquitectura de un ordenador los mismos bytes se guardan en un
orden u otro. Existen arquitecturas big endian y arquitecturas little endian.
Tanto UTF-16 y UTF-32 permiten guardar los bytes tanto en formato big endian
como little endian, pero habr que definirlo de alguna forma en el documento.
Tambin sera conveniente tener algn mecanismo para saber qu tipo de
encoding est usando un documento. Para resolver estos dos problemas existe
el BOM (Bit Order Mask).
Conclusin
En conclusin el codi ascii y el Unicode es una forma de lenguaje primitivo para
las computadoras que traducen las palabras que los humanos usamos para
comunicarnos de forma digital y esta a su vez lo transforma en su propio
lenguaje, y asi traducirla en su propio lenguaje. Lo que nos lleva a una forma
mas rpida para un computador traducir estos lenguajes en cada idioma es en
pocas palabras el lenguaje universal de las computadoras.
Bibliografa
http://www.elcodigoascii.com.ar/
http://ascii.cl/es/
https://www.google.com.mx/webhp?sourceid=chrome-
instant&ion=1&espv=2&ie=UTF-8#q=unicode+resumen