ASCII y Unicode son ambos estándares que se refieren a la representación digital de texto, específicamente a los caracteres que componen el texto. Sin embargo, los dos estándares son significativamente diferentes, con muchas propiedades que reflejan su respectivo orden de creación.
América contra el universo
El Código Estándar Estadounidense para el Intercambio de Información (ASCII), como era de esperar, está dirigido a una audiencia estadounidense, escribiendo en el alfabeto inglés. Se trata de letras sin acento, como A-Z y a-z, además de una pequeña cantidad de símbolos de puntuación y caracteres de control.
En particular, no hay forma de representar palabras prestadas adoptadas de otros idiomas, como cafetería en ASCII, sin anglicizarlos sustituyendo caracteres acentuados (p. ej., cafetería). Las extensiones ASCII localizadas se desarrollaron para satisfacer las necesidades de varios idiomas, pero estos esfuerzos hicieron que la interoperabilidad fuera incómoda y claramente ampliaban las capacidades de ASCII.
Por el contrario, el conjunto de caracteres codificados universal (Unicode) se encuentra en el extremo opuesto de la escala de ambición. Unicode intenta adaptarse a la mayor cantidad posible de sistemas de escritura del mundo, en la medida en que cubre idiomas antiguos y el conjunto de símbolos expresivos favoritos de todos, los emoji.
¿Juego de caracteres o codificación de caracteres?
En términos simples, un conjunto de caracteres es una selección de caracteres (p. Ej., A-Z) mientras que un carácter La codificación es un mapeo entre un conjunto de caracteres y un valor que se puede representar digitalmente (por ejemplo, A = 1, B = 2).
El estándar ASCII es efectivamente ambos: define el conjunto de caracteres que representa y un método para asignar cada carácter a un valor numérico.
Por el contrario, la palabra Unicode se usa en varios contextos diferentes para significar cosas diferentes. Puede pensar en él como un término que lo abarca todo, como ASCII, para referirse a un conjunto de caracteres y una serie de codificaciones. Pero, debido a que hay varias codificaciones, el término Unicode se usa a menudo para referirse al conjunto general de caracteres, en lugar de cómo se asignan.
Tamaño
Debido a su alcance, Unicode representa muchos más caracteres que ASCII. ASCII estándar utiliza un rango de 7 bits para codificar 128 distintos caracteres. Unicode, por otro lado, es tan grande que necesitamos usar terminología diferente solo para hablar de ello.
Unicode atiende a 1,111,998 direccionables puntos de código. Un punto de código es aproximadamente análogo a un espacio reservado para un personaje, ¡pero la situación es mucho más complicada que eso cuando empiezas a profundizar en los detalles!
Una comparación más útil es cuántos scripts (o sistemas de escritura) se admiten actualmente. Por supuesto, ASCII solo maneja el alfabeto inglés, esencialmente el alfabeto latino o romano. La versión de Unicode producida en 2020 va mucho más allá: incluye soporte para un total de 154 scripts.
Almacenamiento
El rango de 7 bits de ASCII significa que cada carácter se almacena en un solo byte de 8 bits; el bit de repuesto no se utiliza en ASCII estándar. Esto hace que los cálculos de tamaño sean triviales: la longitud del texto, en caracteres, es el tamaño del archivo en bytes.
Puede confirmar esto con la siguiente secuencia de comandos de bash. Primero, creamos un archivo que contiene 12 letras de texto:
$ echo -n 'Hola, mundo'> foo
Para comprobar que el texto está en codificación ASCII, podemos usar el expediente mando:
$ archivo foo
foo: texto ASCII, sin terminadores de línea
Finalmente, para obtener el número exacto de bytes que ocupa el archivo, usamos el estadística mando:
$ stat -f% z foo
12
Dado que el estándar Unicode se ocupa de una gama mucho mayor de caracteres, un archivo Unicode naturalmente ocupa más espacio de almacenamiento. Exactamente cuánto depende de la codificación.
Al repetir el mismo conjunto de comandos de antes, utilizando un carácter que no se puede representar en ASCII, se obtiene lo siguiente:
$ echo -n '€'> foo
$ archivo foo
foo: texto Unicode UTF-8, sin terminadores de línea
$ stat -f% z foo
3
Ese único carácter ocupa 3 bytes en un archivo Unicode. Tenga en cuenta que bash creó automáticamente un archivo UTF-8 ya que un archivo ASCII no puede almacenar el carácter elegido (€). UTF-8 es, con mucho, la codificación de caracteres más común para Unicode; UTF-16 y UTF-32 son dos codificaciones alternativas, pero se utilizan mucho menos.
UTF-8 es una codificación de ancho variable, lo que significa que usa diferentes cantidades de almacenamiento para diferentes puntos de código. Cada punto de código ocupará entre uno y cuatro bytes, con la intención de que los caracteres más comunes requieran menos espacio, proporcionando un tipo de compresión incorporada. La desventaja es que determinar los requisitos de longitud o tamaño de un fragmento de texto determinado se vuelve mucho más complicado.
ASCII es Unicode, pero Unicode no es ASCII
Para compatibilidad con versiones anteriores, los primeros 128 puntos de código Unicode representan los caracteres ASCII equivalentes. Dado que UTF-8 codifica cada uno de estos caracteres con un solo byte, cualquier texto ASCII también es un texto UTF-8. Unicode es un superconjunto de ASCII.
Sin embargo, como se muestra arriba, muchos archivos Unicode no se pueden usar en un contexto ASCII. Cualquier carácter que esté fuera de los límites se mostrará de manera inesperada, a menudo con caracteres sustituidos que son completamente diferentes de los previstos.
Uso moderno
Para la mayoría de los propósitos, ASCII se considera en gran medida un estándar heredado. Incluso en situaciones que solo admiten la escritura latina, donde se admite total compatibilidad con las complejidades de Unicode innecesario, por ejemplo; por lo general, es más conveniente usar UTF-8 y aprovechar su ASCII compatibilidad.
En particular, las páginas web deben guardarse y transmitirse utilizando UTF-8, que es el predeterminado para HTML5. Esto contrasta con la web anterior, que trataba en ASCII de forma predeterminada antes de que fuera reemplazada por Latin 1.
Un estándar que está cambiando
La última revisión de ASCII tuvo lugar en 1986.
Por el contrario, Unicode se sigue actualizando anualmente. Regularmente se agregan nuevos guiones, personajes y, en particular, nuevos emoji. Con solo una pequeña fracción de estos asignados, es probable que el conjunto de caracteres completo crezca y crezca en el futuro previsible.
Relacionado: Los 100 emojis más populares explicados
Hay tantos emojis que puede ser difícil saber qué significan. Aquí se explican los emojis más populares.
ASCII frente a Unicode
ASCII cumplió su propósito durante muchas décadas, pero Unicode ahora lo ha reemplazado de manera efectiva para todos los propósitos prácticos que no sean sistemas heredados. Unicode es más grande y, por tanto, más expresivo. Representa un esfuerzo de colaboración mundial y ofrece una flexibilidad mucho mayor, aunque a expensas de cierta complejidad.
El texto ASCII parece críptico, pero tiene muchos usos en Internet.
- Tecnología explicada
- Emojis
- Jerga
- Cultura web
- Unicode

Bobby es un entusiasta de la tecnología que trabajó como desarrollador de software durante la mayor parte de dos décadas. Es un apasionado de los juegos, trabaja como editor de reseñas en Switch Player Magazine y está inmerso en todos los aspectos de la publicación en línea y el desarrollo web.
Suscríbete a nuestro boletín
¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!
Un paso más…!
Confirme su dirección de correo electrónico en el correo electrónico que le acabamos de enviar.