ToolActToolAct

Tabla ASCII

Referencia completa de códigos de caracteres ASCII con caracteres de control, imprimibles y extendidos

256 caracteres en total
DecimalHexadecimalCarácterDescripción
00x00-Carácter nulo
10x01-Inicio de Encabezado
20x02-Inicio de Texto
30x03-Fin de Texto
40x04-Fin de Transmisión
50x05-Consulta
60x06-Reconocimiento
70x07-Campana
80x08-Retroceso
90x09-Tabulador Horizontal
100x0A-Alimentación de Línea
110x0B-Tabulador Vertical
120x0C-Alimentación de Formulario
130x0D-Retorno de Carro
140x0E-Shift Out
150x0F-Shift In
160x10-Escape de Enlace de Datos
170x11-Control de Dispositivo 1
180x12-Control de Dispositivo 2
190x13-Control de Dispositivo 3
200x14-Control de Dispositivo 4
210x15-Reconocimiento Negativo
220x16-Inactivo Sincrónico
230x17-Fin de Bloque de Transmisión
240x18-Cancelar
250x19-Fin de Medio
260x1A-Sustituto
270x1B-Escape
280x1C-Separador de Archivo
290x1D-Separador de Grupo
300x1E-Separador de Registro
310x1F-Separador de Unidad
1270x7F-Suprimir
320x20Espacio
330x21!Signo de exclamación
340x22"Comillas dobles
350x23#Signo de número
360x24$Signo de dólar
370x25%Signo de porcentaje
380x26&Ampersand
390x27'Comilla simple
400x28(Paréntesis izquierdo
410x29)Paréntesis derecho
420x2A*Asterisco
430x2B+Signo más
440x2C,Coma
450x2D-Guion
460x2E.Punto
470x2F/Barra
480x300Dígito 0
490x311Dígito 1
500x322Dígito 2
510x333Dígito 3
520x344Dígito 4
530x355Dígito 5
540x366Dígito 6
550x377Dígito 7
560x388Dígito 8
570x399Dígito 9
580x3A:Dos puntos
590x3B;Punto y coma
600x3C<Menor que
610x3D=Signo igual
620x3E>Mayor que
630x3F?Signo de interrogación
640x40@Arroba
650x41AA mayúscula
660x42BB mayúscula
670x43CC mayúscula
680x44DD mayúscula
690x45EE mayúscula
700x46FF mayúscula
710x47GG mayúscula
720x48HH mayúscula
730x49II mayúscula
740x4AJJ mayúscula
750x4BKK mayúscula
760x4CLL mayúscula
770x4DMM mayúscula
780x4ENN mayúscula
790x4FOO mayúscula
800x50PP mayúscula
810x51QQ mayúscula
820x52RR mayúscula
830x53SS mayúscula
840x54TT mayúscula
850x55UU mayúscula
860x56VV mayúscula
870x57WW mayúscula
880x58XX mayúscula
890x59YY mayúscula
900x5AZZ mayúscula
910x5B[Corchete izquierdo
920x5C\Barra invertida
930x5D]Corchete derecho
940x5E^Circunflejo
950x5F_Guion bajo
960x60`Acento grave
970x61aa minúscula
980x62bb minúscula
990x63cc minúscula
1000x64dd minúscula
1010x65ee minúscula
1020x66ff minúscula
1030x67gg minúscula
1040x68hh minúscula
1050x69ii minúscula
1060x6Ajj minúscula
1070x6Bkk minúscula
1080x6Cll minúscula
1090x6Dmm minúscula
1100x6Enn minúscula
1110x6Foo minúscula
1120x70pp minúscula
1130x71qq minúscula
1140x72rr minúscula
1150x73ss minúscula
1160x74tt minúscula
1170x75uu minúscula
1180x76vv minúscula
1190x77ww minúscula
1200x78xx minúscula
1210x79yy minúscula
1220x7Azz minúscula
1230x7B{Llave izquierda
1240x7C|Barra vertical
1250x7D}Llave derecha
1260x7E~Virgulilla
1280x80€
1290x81
1300x82‚
1310x83ƒ
1320x84„
1330x85…
1340x86†
1350x87‡
1360x88ˆ
1370x89‰
1380x8AŠ
1390x8B‹
1400x8CŒ
1410x8D
1420x8EŽ
1430x8F
1440x90
1450x91‘
1460x92’
1470x93“
1480x94”
1490x95•
1500x96–
1510x97—
1520x98˜
1530x99™
1540x9Aš
1550x9B›
1560x9Cœ
1570x9D
1580x9Ež
1590x9FŸ
1600xA0 
1610xA1¡
1620xA2¢
1630xA3£
1640xA4¤
1650xA5¥
1660xA6¦
1670xA7§
1680xA8¨
1690xA9©
1700xAAª
1710xAB«
1720xAC¬
1730xAD­
1740xAE®
1750xAF¯
1760xB0°
1770xB1±
1780xB2²
1790xB3³
1800xB4´
1810xB5µ
1820xB6
1830xB7·
1840xB8¸
1850xB9¹
1860xBAº
1870xBB»
1880xBC¼
1890xBD½
1900xBE¾
1910xBF¿
1920xC0À
1930xC1Á
1940xC2Â
1950xC3Ã
1960xC4Ä
1970xC5Å
1980xC6Æ
1990xC7Ç
2000xC8È
2010xC9É
2020xCAÊ
2030xCBË
2040xCCÌ
2050xCDÍ
2060xCEÎ
2070xCFÏ
2080xD0Ð
2090xD1Ñ
2100xD2Ò
2110xD3Ó
2120xD4Ô
2130xD5Õ
2140xD6Ö
2150xD7×
2160xD8Ø
2170xD9Ù
2180xDAÚ
2190xDBÛ
2200xDCÜ
2210xDDÝ
2220xDEÞ
2230xDFß
2240xE0à
2250xE1á
2260xE2â
2270xE3ã
2280xE4ä
2290xE5å
2300xE6æ
2310xE7ç
2320xE8è
2330xE9é
2340xEAê
2350xEBë
2360xECì
2370xEDí
2380xEEî
2390xEFï
2400xF0ð
2410xF1ñ
2420xF2ò
2430xF3ó
2440xF4ô
2450xF5õ
2460xF6ö
2470xF7÷
2480xF8ø
2490xF9ù
2500xFAú
2510xFBû
2520xFCü
2530xFDý
2540xFEþ
2550xFFÿ

¿Qué es ASCII?

ASCII (Código Estadounidense Estándar para el Intercambio de Información) es un estándar de codificación de caracteres basado en el alfabeto latino. Desarrollado originalmente para la comunicación por telégrafo en la década de 1960, se convirtió en el sistema de codificación de caracteres fundamental en la informática. El ASCII estándar contiene 128 caracteres (0-127), incluyendo 33 caracteres de control y 95 caracteres imprimibles. El ASCII extendido (128-255) añade otros 128 caracteres para símbolos y caracteres internacionales, aunque la codificación varía según la región. Una tabla ASCII es especialmente útil al depurar codificaciones, caracteres de control, protocolos, secuencias de escape, terminales y formatos antiguos. Los valores decimal, hexadecimal y binario muestran cómo se almacena o transmite realmente un carácter. El texto moderno suele usar Unicode, así que ASCII cubre solo el núcleo histórico de 7 bits. Para caracteres internacionales, emojis, signos tipográficos y textos multilingües, hay que revisar también puntos de código Unicode y reglas de codificación.

Cómo usar

Operaciones básicas

  1. Haz clic en cualquier valor o carácter para copiarlo
  2. Usa el buscador para localizar caracteres concretos rápidamente
  3. Haz clic en los botones de categoría para filtrar por tipo de carácter
  4. Pasa el cursor sobre los caracteres para ver descripciones detalladas

Notas sobre codificación

  • ASCII solo cubre el rango 0-127; las letras acentuadas, los emojis y casi todo el texto no inglés requieren codificaciones Unicode como UTF-8.
  • Los caracteres de control pueden no mostrarse visualmente, pero afectan a archivos, terminales, protocolos y texto pegado.

Casos de uso

Buscar el código exacto de un carácter visible o invisibleBusca por carácter, valor decimal, hexadecimal o descripción para confirmar entradas como espacio 32, LF 0x0A, CR 0x0D, ESC 0x1B o A mayúscula 65 mientras depuras procesamiento de texto. La página es una herramienta de referencia sin campo de entrada que se envíe a ningún sitio: las búsquedas se ejecutan contra los 128 datos ASCII integrados, de modo que puntos de código internos, fragmentos de log y constantes de protocolo pueden consultarse sin subirlos.
Separar caracteres de control de texto imprimibleUsa los filtros de control, imprimible y extendido cuando un log, mensaje serie, archivo CSV o salida de terminal contenga caracteres que no aparecen en pantalla pero que alteran el análisis. Como no se recopila ningún carácter, los mismos filtros pueden usarse para formar a aprendices, crear tarjetas de referencia o auditar expectativas de un analizador sin dejar rastro en ningún backend.
Copiar valores de referencia al código o a la documentaciónHaz clic en un valor de fila de la tabla para copiarlo al escribir pruebas de analizador, notas de protocolo, referencias de teclado, explicaciones de secuencias de escape o documentación de integración heredada. Para los valores extendidos 128-255, confirma la página de códigos destino: la tabla indica la posición, pero no puede saber con qué página de códigos descodifica el sistema de destino.
Descodificar una secuencia de escape sin consultar un manualPega una secuencia como \x1B[31m, \r\n o \t en el cuadro de búsqueda y lee los valores decimal, hexadecimal y binario junto con la representación imprimible. Resulta útil cuando las líneas de log o la salida de terminal muestran caracteres extraños y necesitas confirmar si el byte original era un carácter de control o un artefacto de página de códigos. La consulta se realiza solo contra la tabla de la página, por lo que capturas de terminales de producción nunca salen del navegador.
Construir un inventario de caracteres imprimibles para un analizadorFiltra por caracteres imprimibles y revisa el rango ASCII de 95 entradas antes de definir una lista de permitidos para un analizador estricto. Esto ayuda a detectar suposiciones sobre espacios en blanco, puntuación y comillas que a menudo difieren entre lenguajes de programación, shells, salidas de terminal y dialectos CSV. El inventario es el propio conjunto de datos estáticos de la página, por lo que consultarlo no depende de la conexión de red ni de documentación externa.

Principio técnico

ASCII (American Standard Code for Information Interchange, ANSI X3.4-1968, ISO/IEC 646:1991 IRV) es una codificación de caracteres de 7 bits que asigna códigos numéricos 0-127 a 128 caracteres. Los 32 códigos inferiores (0x00-0x1F) más 0x7F son caracteres de control heredados de los teletipos: NUL (0x00), BEL (0x07, la alerta sonora), LF (0x0A, avance de línea), CR (0x0D, retorno de carro), ESC (0x1B), DEL (0x7F), entre otros. Los códigos 0x20-0x7E son imprimibles: espacio, los dígitos 0-9 en 0x30-0x39, las letras mayúsculas A-Z en 0x41-0x5A, las letras minúsculas a-z en 0x61-0x7A y puntuación entre ellos. La codificación tiene una estructura deliberadamente regular. Los dígitos están agrupados: '0' = 0x30, '1' = 0x31, ..., '9' = 0x39. Convertir un carácter dígito a su valor numérico es `code - 0x30`. Las letras también están agrupadas: 'A' = 0x41, 'B' = 0x42, ..., 'Z' = 0x5A, y 'a' = 0x61, ..., 'z' = 0x7A. La diferencia entre mayúsculas y minúsculas para la misma letra es 0x20 (32), que es exactamente un bit activado en la posición 5 (1 << 5 = 32). Eso hace que la conversión de mayúsculas/minúsculas sea un solo XOR o OR/AND con 0x20: `code ^ 0x20` invierte mayúsculas, `code | 0x20` convierte a minúsculas, `code & 0x5F` (= `code & ~0x20`) convierte a mayúsculas. Este truco de bits es la conversión de mayúsculas más rápida posible y aparece en implementaciones de strlen/strcmp para cadenas solo ASCII. ASCII fue diseñado para teletipos de 7 bits y el código Baudot de 5 niveles que lo precedió, por lo que es anterior a los bytes de 8 bits. El rango de 'ASCII extendido' de 8 bits (0x80-0xFF) nunca fue estandarizado, razón por la cual tantas páginas de códigos (ISO 8859-1 Latin-1, Windows-1252, MacRoman, KOI8-R, IBM437) compitieron por la mitad superior. ISO 8859-1 (Latin-1) fue lo más cercano a un estándar, pero incluso carecía del símbolo del euro hasta ISO 8859-15. El rango de control C1 (0x80-0x9F) debía estar reservado (ISO 6429), pero Windows-1252 reutilizó parte de él para caracteres imprimibles — un dolor de interoperabilidad prolongado que UTF-8 finalmente resolvió. UTF-8 (RFC 3629, 2003) fue diseñado por Rob Pike y Ken Thompson en 1992 como un superconjunto compatible hacia atrás: los 128 códigos ASCII se codifican como ellos mismos en un solo byte (0x00-0x7F), por lo que cualquier texto ASCII es también un texto UTF-8 válido. Los códigos por encima de 0x7F usan secuencias de 2, 3 o 4 bytes con patrones de bits específicos (110xxxxx 10xxxxxx, 1110xxxx 10xxxxxx 10xxxxxx, 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx) para que un decodificador pueda resincronizar byte a byte tras un error. EBCDIC, en contraste, fue la codificación de 8 bits de los mainframes de IBM (EBCDIC de 8 bits era de 8 bits, no de 7 como ASCII) y asigna letras a puntos de código no contiguos ('A' = 0xC1, 'I' = 0xC9, 'J' = 0xD1, ..., con huecos que perjudican los trucos de bits y algoritmos de cadenas). Las variantes nacionales de ISO 646 reemplazaron un pequeño conjunto de caracteres ASCII con letras específicas de cada país. Por ejemplo, la variante británica reemplazó 0x23 (el '#' estadounidense) con el símbolo de libra '£', y la variante alemana reemplazó algo de puntuación con diéresis. Por esto la configuración regional de C y los archivos charmap de POSIX fueron históricamente importantes — mapeaban entre la IRV (Versión de Referencia Internacional) y las variantes nacionales. La salida de este lío es Unicode / UTF-8, que hace obsoleto todo el debate de 7 y 8 bits para cualquier proyecto nuevo.

  • ASCII (ANSI X3.4-1968, ISO/IEC 646 IRV) usa 7 bits por carácter con 128 puntos de código: 33 caracteres de control (0x00-0x1F, 0x7F) y 95 caracteres imprimibles (0x20-0x7E).
  • Los caracteres de control (0x00-0x1F, 0x7F) se heredaron de los teletipos: NUL, BEL (0x07, alerta sonora), LF (0x0A), CR (0x0D), ESC (0x1B), DEL (0x7F). El texto moderno aún usa LF y CR; el resto es mostly historia.
  • Diseño imprimible: espacio (0x20), dígitos '0'-'9' (0x30-0x39), mayúsculas 'A'-'Z' (0x41-0x5A), minúsculas 'a'-'z' (0x61-0x7A), puntuación entre medias. Convertir '5' a 5 es `code - 0x30`; mayúscula a minúscula es `code | 0x20`.
  • La conversión de mayúsculas es una sola operación de bits: XOR 0x20 invierte; OR 0x20 convierte a minúsculas; AND 0x5F (= `code & ~0x20`) convierte a mayúsculas. Esta es la conversión de mayúsculas más rápida en cualquier lenguaje y es cómo funcionan strlen/strcmp en buffers solo ASCII.
  • Las extensiones de 8 bits (0x80-0xFF) nunca fueron estandarizadas, por lo que Windows-1252, ISO-8859-1, MacRoman, KOI8-R, IBM437 definieron la mitad alta de forma diferente. Windows-1252 ganó en la web y es el 'ASCII extendido' de facto que usa la mayoría del código heredado.
  • UTF-8 (RFC 3629, Pike y Thompson 1992) es un superconjunto estricto de ASCII: los 128 puntos de código ASCII se codifican como ellos mismos en 1 byte; los puntos de código por encima de U+007F usan 2-4 bytes con bytes de continuación 110xxxxx 10xxxxxx, para que los decodificadores puedan resincronizar byte a byte tras errores.
  • EBCDIC (IBM, mainframes de los años 60) es la alternativa de 8 bits a ASCII usada en IBM z/OS. Las posiciones de las letras no son contiguas ('A'=0xC1, 'I'=0xC9, 'J'=0xD1), por lo que el truco de conversión de mayúsculas de ASCII no funciona y los algoritmos de desplazamiento de bits como tolower() necesitan tablas de búsqueda.
  • Las variantes nacionales de ISO 646 (Reino Unido, Alemania, Suecia, etc.) reemplazaron un pequeño conjunto de caracteres ASCII con letras específicas del país: la variante británica cambió '#' por '£' en 0x23, la variante alemana cambió puntuación por diéresis. Localización pre-Unicode en pocas palabras.

Ejemplos

Búsqueda rápida de carácter

Carácter: 'A'
  Decimal:  65
  Hex:      0x41
  Binario:  01000001
  Octal:    0101
  Escape C: \x41  ('\x41' en C / C++ / Python / JavaScript)

La diferencia entre mayúsculas y minúsculas es 0x20 (32 decimal):
  'a' = 0x61 (97)    =  'A' (0x41) + 0x20
  'A' = 0x41 (65)    =  'a' (0x61) - 0x20
Por eso alternar el bit 5 (máscara 0x20) cambia entre mayúscula y minúscula.

  ch ^ 0x20   alterna A <-> a   (funciona para A-Z, a-z, deja el resto sin cambio)

Depuración de problemas con saltos de línea

LF  (0x0A, decimal 10)  - Unix, Linux, macOS moderno  '\n'
CR  (0x0D, decimal 13)  - Mac OS clásico (anterior a OS X), algunos protocolos de red  '\r'
CRLF (0x0D 0x0A, '13 10')  - Windows, HTTP, SMTP, FTP  '\r\n'

Volcado hex de un archivo 'hi\r\n' guardado en Windows:
  0000:  68 69 0d 0a         hi..

Volcado hex del mismo contenido guardado en Linux ('hi\n'):
  0000:  68 69 0a            hi.

Efecto en el conteo de líneas:
  $ wc -l windows.txt unix.txt
       1 windows.txt    (1 salto de línea, 0x0D 0x0A)
       1 unix.txt       (1 salto de línea, 0x0A)
  El conteo de bytes difiere (4 vs 3) y herramientas como dos2unix detectan
  buscando pares 0x0D 0x0A y eliminando el 0x0D.

Referencia de codificación de URL

Conjunto sin reservar + reservado de RFC 3986 (el resto debe codificarse en porcentaje):
  sin reservar  A-Z a-z 0-9 - _ . ~
  reservado     ! * ' ( ) ; : @ & = + $ , / ? # [ ]
  codificar todo lo demás como %HH, donde HH es hex de 2 dígitos en mayúscula

Caracteres comunes:
  espacio  0x20  ->  %20   (o '+' dentro de application/x-www-form-urlencoded)
  !        0x21  ->  %21
  "        0x22  ->  %22
  #        0x23  ->  %23
  $        0x24  ->  %24
  %        0x25  ->  %25
  &        0x26  ->  %26   (separador en cadenas de consulta - codificar siempre dentro de valores)
  '        0x27  ->  %27
  (        0x28  ->  %28
  )        0x29  ->  %29
  +        0x2B  ->  %2B   (o %20 en cuerpos de formulario; allí '+' significa espacio)
  ,        0x2C  ->  %2C
  /        0x2F  ->  %2F   (reservado en la ruta, a menudo seguro en consultas)
  :        0x3A  ->  %3A
  ;        0x3B  ->  %3B
  =        0x3D  ->  %3D
  ?        0x3F  ->  %3F
  @        0x40  ->  %40

Ejemplo: https://example.com/path with space and ampersand
Codificado: https://example.com/path%20with%20space%20%26%20ampersand

Escapes de caracteres de control y metacaracteres de regex

Códigos de control comunes y sus formas de escape en cadenas de C / Python / JavaScript:
  NUL  0x00  '\0'         (terminador de cadena en C)
  BEL  0x07  '\a'         (campana de terminal)
  BS   0x08  '\b'         (retroceso)
  TAB  0x09  '\t'         (tabulación horizontal)
  LF   0x0A  '\n'         (salto de línea)
  VT   0x0B  '\v'         (tabulación vertical)
  FF   0x0C  '\f'         (avance de página)
  CR   0x0D  '\r'         (retorno de carro)
  ESC  0x1B  '\x1b' / '\e' (POSIX)  (inicio de secuencia de escape)
  DEL  0x7F  '\x7f'       (suprimir)

Metacaracteres de regex que deben escaparse con \:
  ^ $ . | ? * + ( ) [ ] { } \

Fragmento de JavaScript que refleja la tabla anterior:
  const ctrl = { 0:'NUL', 9:'TAB', 10:'LF', 13:'CR', 27:'ESC', 32:'SP', 127:'DEL' };
  for (const [code, name] of Object.entries(ctrl)) {
    console.log(`${code.toString().padStart(3)}  0x${(+code).toString(16).padStart(2,'0')}  ${name}`);
  }
  // ->  ' 0x20 SP'   0a LF   0d CR   etc.

Preguntas frecuentes

¿Qué tamaño tiene la tabla ASCII?

El ASCII estándar tiene 128 puntos de código (0-127): 33 caracteres de control (0-31 más 127 DEL) y 95 caracteres imprimibles (del espacio a ~). El 'ASCII extendido' se refiere a varias codificaciones de un solo byte y 256 puntos de código, como Windows-1252 o ISO-8859-1, que en realidad no son ASCII.

¿Por qué el carácter 32 aparece como 'Space' y no como un glifo visible?

El punto de código 32 (0x20) es el carácter espacio. Es imprimible pero invisible. La página muestra la etiqueta 'SP' o 'Space' para que puedas copiarlo; al hacer clic en la fila se copia un espacio real al portapapeles.

¿Para qué sirven los primeros 32 códigos ASCII?

Son caracteres de control de la era del teleimpresor: TAB (9), LF (10), CR (13), ESC (27) y otros. El software actual sigue usando TAB, LF, CR y NUL (0); el resto (BEL, ACK, ENQ, etc.) son sobre todo históricos y solo aparecen en protocolos serie y cabeceras de archivos binarios.

¿ASCII y UTF-8 son lo mismo?

ASCII es una codificación de 7 bits para inglés. UTF-8 es una codificación de longitud variable compatible byte a byte con ASCII en sus primeros 128 puntos de código, así que cualquier archivo ASCII puro también es UTF-8 válido. UTF-8 lo amplía con secuencias de 2-4 bytes para cubrir el resto de Unicode.

¿Cómo convierto entre decimal, hexadecimal y binario para un carácter?

Selecciona una fila para ver las cuatro representaciones. Por ejemplo, 'A' es decimal 65, hex 0x41, octal 0101, binario 01000001. La columna Char es el glifo literal y la columna Description da el nombre Unicode oficial.

¿Por qué esta tabla no incluye é, ñ o 中?

Esos caracteres están fuera del rango ASCII. é y ñ están en Latin-1 (puntos de código 233 y 241); 中 está en CJK Unified Ideographs (U+4E2D). Para ellos usa una herramienta de búsqueda Unicode: ASCII solo llega hasta 127.

¿Cómo escribo un carácter si solo conozco su código ASCII?

En Windows, mantén Alt y teclea el código decimal en el teclado numérico (Alt+65 para A). En macOS y Linux, pega desde esta tabla o usa la función de código hex del método de entrada. En código, usa \xNN (hex), \NNN (octal), o chr(N) (Python) y String.fromCharCode(N) (JavaScript).