También disponible en: English · Português · Français · العربية
Tabla ASCII
Todos los caracteres ASCII en decimal, hexadecimal, octal y binario, y un recuento de qué caracteres de control sigue usando algo.
Qué es la tabla ASCII
ASCII asigna un número del 0 al 127 a cada uno de 128 caracteres. Noventa y cinco son imprimibles: el espacio, las cifras, los dos alfabetos y la puntuación de un teclado estadounidense. Los otros treinta y tres no imprimen nada. Son caracteres de control, y son la mitad de la tabla que todas las referencias enumeran y nadie explica.
La división no es cuestión de criterio. En la base de datos de caracteres de Unicode esos treinta y tres tienen el nombre literal <control> y sus nombres reales viven en un fichero de alias aparte. Esta página se genera a partir de ambos, así que los nombres, las abreviaturas y los nombres alternativos son los del estándar y no los de nadie de memoria.
Todo lo demás en un ordenador moderno está construido encima. UTF-8 se diseñó para que sus primeros 128 puntos de código sean exactamente ASCII, byte a byte, y por eso un fichero de texto en inglés es a la vez ASCII válido y UTF-8 válido, y lo lleva siendo décadas.
Cómo usar la tabla
- Busca como te venga a la cabeza. Escribe 65, o 0x41, o la propia letra A, o carriage, o ESC. Valores decimales, hexadecimales, caracteres sueltos, nombres, abreviaturas y nombres alternativos: todo coincide.
- Lee a lo ancho para la codificación que necesites. Cada fila lleva decimal, hexadecimal, octal y binario de ocho bits, con ceros a la izquierda para que las columnas cuadren al copiarlas. El botón de copiar te da el carácter; para los de control, que no tienen carácter, te da el escape hexadecimal.
- Mira primero la sección de caracteres de control. Es la parte con los números sorprendentes, y explica por qué un final de línea de Windows ocupa dos bytes en vez de uno.
Cuatro de los treinta y tres caracteres de control siguen usándose
Lo habitual es describir los caracteres de control como una lista de nombres sin indicar cuáles importan. Contar resulta más útil, así que los contamos. En 9.760 ficheros de texto y 127.721.432 caracteres —este sitio entero, su HTML compilado y doce libros de dominio público— aparecen exactamente cuatro de los treinta y tres.
El salto de línea aparece 434.063 veces y el retorno de carro 229.147. El tabulador sale tres veces y el retroceso dos, y en ambos casos dentro de textos que hablan de ellos. Los veintinueve restantes no salen ni una vez: ni NUL, ni el timbre, ni escape, ni suprimir, ni ninguno de los diez controles de transmisión, ni los cuatro de dispositivo, ni los cuatro separadores de información.
Es que eran instrucciones para una máquina que ya no existe. Un teletipo era una máquina de escribir conectada por cable, y los códigos le decían qué hacer físicamente: toca el timbre, perfora la cinta, deja de leer, ponte a escuchar. Sobrevivieron dos porque dos movían papel. El retorno de carro deslizaba el carro hasta el margen izquierdo; el salto de línea giraba el rodillo una línea. Un teletipo necesitaba los dos para empezar una línea nueva, y por eso un final de línea de Windows sigue ocupando dos bytes y por eso mover un fichero entre sistemas operativos todavía puede estropearlo.
Los separadores de información son el caso más triste. ASCII tiene cuatro caracteres —separador de fichero, de grupo, de registro y de unidad— pensados justo para el trabajo que el CSV hace mal, sin ninguno de los problemas de comillas y escapes que convierten el análisis de CSV en un campo de minas. Llevan en 0x1C a 0x1F desde 1963 y prácticamente nada los usa.
El estándar tampoco se pone de acuerdo consigo mismo
Nueve caracteres ASCII llevan más de un nombre oficial, y la tabla los muestra todos. El más consecuente es 0x0A, que la base de datos de Unicode lista como LINE FEED, NEW LINE y END OF LINE. Tres nombres en un mismo fichero para el carácter sobre cuyo uso nadie se pone de acuerdo resume bastante bien por qué los finales de línea son un lío: el propio estándar nunca decidió si avanza el papel o termina la línea.
El tabulador es CHARACTER TABULATION y también HORIZONTAL TABULATION; 0x0B es LINE TABULATION y también VERTICAL TABULATION. Shift out y shift in son además LOCKING-SHIFT ONE y LOCKING-SHIFT ZERO, de un sistema de cambio de juegos de caracteres con el que casi nadie se topa ya.
Hay un caso fronterizo que conviene conocer. El espacio es imprimible —la base de datos lo llama SPACE, no <control>— y aun así es el único carácter imprimible con abreviatura oficial, SP, porque no dibuja nada visible y las tablas necesitan mostrar algo. Por eso aquí va con la puntuación.
Límites honestos
El recuento de uso es la medición de un corpus, no una ley. Este sitio es TypeScript, HTML y prosa en inglés, así que dice mucho sobre el aspecto del código web moderno y nada sobre lo que emite un protocolo serie o un terminal de punto de venta. El software que habla con una impresora, un lector de códigos de barras o un mainframe sigue usando estos códigos sin ninguna duda: ahí es donde perviven los controles de dispositivo y de transmisión. Lo que sí demuestra el número es que han desaparecido del texto corriente.
ASCII son además solo los primeros 128 puntos de código. Cualquier cosa acentuada, cualquier cosa en otro alfabeto, todos los emoji y la inmensa mayoría de la puntuación que usa un documento real quedan fuera. Si un carácter no está en esta página, ASCII sencillamente no tiene número para él y lo que quieres es UTF-8, que empieza coincidiendo exactamente con esta tabla y luego continúa.
Por último, el carácter de escape merece una nota. No aparece en nuestro corpus, pero está lejos de haber muerto: es el que abre las secuencias de escape de terminal que dan color a cualquier herramienta de línea de órdenes. No sale en el texto almacenado porque pertenece al cable entre un programa y un terminal, no a los ficheros.
¿Por qué es gratis?
Porque es una tabla de hechos públicos. La página es texto estático con un buscador que la filtra en tu navegador: no se sube nada, no se guarda nada y no hay servidor de por medio para leerla.
Así que no hay cuenta, ni registro, ni nada reservado. Los datos de base son la base de datos de caracteres de Unicode, que puede descargar cualquiera, y el script que la convierte en esta página está en el repositorio junto a ella.