Accede a todo EDteam con un único pago¡Sube a premium!

Unicode y ASCII

Cuando somos programadores, dependiendo de nuestros editores de Texto o IDE (o del lenguaje en el que estemos desarrollando), veremos algunos mensajes o referencias hacia el Unicode o ASCII. ASCII Vamos a explicar primero el concepto de ASCII. (cuyo nombre viene de American Standard Code for Information Interchange).

Diseño web
4 minutos
Hace 7 años
Unicode y ASCII

Cuando somos programadores, dependiendo de nuestros editores de Texto o IDE (o del lenguaje en el que estemos desarrollando), veremos algunos mensajes o referencias hacia el Unicode o ASCII.

ASCII

Vamos a explicar primero el concepto de ASCII. (cuyo nombre viene de American Standard Code for Information Interchange).

Todo comenzó cuando solo se contaba con pequeños espacios para manejar la información y solo se tenían al alcance  32 caracteres. ASCII se convirtió en un estándar con la idea de aprovechar 8 bits que nos darían 256 caracteres o combinaciones disponibles.

Como sabemos la mayoría de los informáticos, en la computadora solo podremos guardar ceros y unos; por lo tanto esto se acopló de muy buena manera ya que el ASCII que se conoce como básico utiliza 7 bits, aunque ahora todos trabajamos con 8 y por lo mismo podríamos tener 128 combinaciones posibles, mas que suficientes para poder representar lo que se necesitaba en ese momento.

Si revisamos las primeras representaciones del código ASCII tendríamos algo como lo siguiente:

CaracterCódigo ASCIIBinarioNULL000000000SOH100000001STX200000010ETX300000011EOT400000100ENQ500000101

Probablemente en los primeros espacios no te resulte nada familiar, los primeros elementos del 0 al 31 son elementos de control y es por eso que vemos nombres raros y fuera de lo común, no entraremos a detalle en ellos ya que no es el objetivo del artículo, pero si vemos los códigos partiendo del valor 65 vamos a ver algo más familiar.

CaracterCódigo ASCIIBinarioA6501000001B6601000011C6701000100D6801000101E6901000110F7001000111

Como se puede observar estamos hablando del alfabeto y algo importante es que en principio es para el idioma inglés por lo tanto no podremos encontrar letras con acento o la ñ. Como decíamos en un principio primero era de 7 bits y ahora contamos con la versión de 8 con el objetivo de poder codificar más elementos. Por eso contamos con el ASCII extendido al que también se le debe de conocer como una versión no estandarizada y es por eso que uno puede encontrar versiones como ASCII ANSI y ASCII OEEM.

Unicode

El unicode es un estándar que se utiliza para la codificación de caracteres de manera universal utilizado hoy en día por muchas plataformas, bases de datos y lenguajes de programación. El estándar que podríamos leer para obtener  más información es ISO/IEC 10646. 

Así como se utiliza una representación mediante números en el código ASCII aquí también se utiliza la representación de números de 0 a 1114111.

El objetivo principal de Unicode son 3 cosas: Uniformidad, universalidad y unicidad. 

Unicode es un intento de varias empresas como Microsoft, Oracle, Apple, Google y un gran consorcio por reemplazar los esquemas que ya existen y que no consideran el tema de la diversidad de lenguas que se manejan.

Podemos decir que Unicode toma en cuenta a todos y por lo mismo su naturaleza es ser el más completo. No importa el alfabeto, el tipo de escritura o símbolo, por la naturaleza de Unicode, si algún elemento no está disponible será agregado.

Ahora que ya sabemos que es Unicode podremos hablar entonces de ASCII y Unicode para los programadores

Unicode vs ASCII

Como vemos Unicode en algún momento será el estándar por que el que la mayoría siga la línea, pero aun tenemos lenguajes o herramientas que no soportan Unicode por defecto, por ejemplo Python hasta su última versión soporta Unicode. PHP no lo soporta de forma nativa, y así como estos ejemplos te podrás encontrar varios.

En el caso de PHP lo que se hace es utilizar UTF-8 que es compatible con ASCII y así resolvemos el problema. Así que depende de cómo y dónde estemos escribiendo nuestro código, en muchas ocasiones cuando vemos un carácter raro o algo que simplemente nosotros no pusimos ahí lo mas probable es que sea un error de codificación y que lo que seleccionamos como estándar no sea capaz de codificar lo que está escrito.

UTF-8 significa que estamos utilizando una codificación de 8 bits de longitud variable, esta es solamente una de las disponibles, tenemos también UTF-7, UTF-16 y otras.

Después de esto podríamos decir que Unicode es un ASCII súper mejorado. No solo por capacidad si no por todo lo que implica. Es por eso que lo mejor en la mayoría de los casos (aunque se eleve un poco la complejidad del problema) debemos seleccionar Unicode o en su caso UTF-8 ya que nos permite mayor compatibilidad y cada día más aceptado, aunque seguimos con la limitante de los lenguajes e IDE que cada día también se van sumando, pero aún no lo hacen todos.

Comentarios de los usuarios

Pregunta a ChatEDT