Código ASCII
American Standard Code for Information Interchange — el lenguaje universal que usa tu computadora para representar letras, números y símbolos.
⌨️ Caracteres especiales — ¿No lo encuentras en tu teclado?
Busca el carácter, copia el código Alt y escríbelo en cualquier programa de Windows. Al final de esta sección encontrarás la explicación técnica de los tres sistemas.
⌨️ ¿Cómo se escribe? — Alt + Número
Mantén presionado Alt y escribe el número en el teclado numérico (el bloque de la derecha del teclado, no las teclas de arriba). Suelta Alt al terminar.
- • Números 32 a 127 — sin cero inicial
- • Letras A–Z, a–z, dígitos, @, #, $, &…
- • Funciona igual en todos los sistemas
- • Números 0128 a 0255 — con 0 al inicio
- • ñ, á, é, í, ó, ú, €, ©, °, ², ½…
- • El 0 inicial activa la tabla Windows-1252
📋 Tabla completa de Alt codes
| Carácter | Alt Code | Dec | Nombre / uso | Categoría |
|---|
🧪 Campo de prueba — escribe con Alt+número y verifica
Haz clic aquí y prueba Alt+número. El panel derecho te muestra el código de cada carácter al instante.
📖 ¿Por qué hay tres sistemas distintos? Porque la informática creció por etapas: primero el inglés (ASCII), luego Europa (Windows-1252) y finalmente todos los idiomas del mundo (UTF-8). Entender la diferencia explica por qué a veces aparecen caracteres raros como MedellÃn en lugar de Medellín.
⚖️ ASCII vs UTF-8 vs Windows-1252 — ¿En qué se diferencian?
| Bits/carácter | 7 bits fijos |
| Total chars | 128 (0–127) |
| Idiomas | Solo inglés |
| ¿Tiene ñ/á/é? | ❌ No |
| ¿Emojis? | ❌ No |
| Creado por | ASA (EE.UU.) |
El abuelo de todos. Solo cubre el inglés: letras A–Z, dígitos y signos básicos. Sin acentos, sin ñ.
| Bits/carácter | 8 bits fijos |
| Total chars | 256 (0–255) |
| Idiomas | Europa Occidental |
| ¿Tiene ñ/á/é? | ✅ Sí |
| ¿Emojis? | ❌ No |
| Creado por | Microsoft |
Extiende ASCII con letras europeas (128–255). Predeterminado en Windows en muchos países latinoamericanos. Incompatible fuera de Europa Occidental.
| Bits/carácter | Variable: 1–4 bytes |
| Total chars | +1.100.000 |
| Idiomas | Todos del mundo |
| ¿Tiene ñ/á/é? | ✅ Sí |
| ¿Emojis? | ✅ Sí 😀🎉❤️ |
| Creado por | Ken Thompson / Rob Pike |
El estándar moderno. Compatible con ASCII (los primeros 128 son idénticos). Usado por el 98% de la web.
📊 Mismo carácter, diferente código según el sistema
| Carácter | ASCII (Dec) | Windows-1252 (Hex) | UTF-8 (Bytes hex) | ¿Quién lo soporta? |
|---|---|---|---|---|
| A | 65 ✅ | 41 ✅ | 41 ✅ (1 byte) | Los tres — son idénticos |
| é | ❌ | E9 ✅ | C3 A9 ✅ (2 bytes) | Windows-1252 y UTF-8 |
| ñ | ❌ | F1 ✅ | C3 B1 ✅ (2 bytes) | Windows-1252 y UTF-8 |
| Ñ | ❌ | D1 ✅ | C3 91 ✅ (2 bytes) | Windows-1252 y UTF-8 |
| € | ❌ | 80 ✅ | E2 82 AC ✅ (3 bytes) | Windows-1252 y UTF-8 |
| 😀 | ❌ | ❌ | F0 9F 98 80 ✅ (4 bytes) | Solo UTF-8 |
| 中 | ❌ | ❌ | E4 B8 AD ✅ (3 bytes) | Solo UTF-8 |
| α (alfa) | ❌ | ❌ | CE B1 ✅ (2 bytes) | Solo UTF-8 |
🔥 El problema "Mojibake" — ¿Por qué aparecen caracteres raros?
Mojibake (文字化け) es la palabra japonesa para los caracteres ilegibles que aparecen cuando un texto se guarda con un encoding y se lee con otro diferente.
Este error ocurre frecuentemente al abrir archivos .csv de Excel, al leer bases de datos MySQL sin especificar encoding, o al mezclar PHP con HTML sin declarar charset=utf-8.
🔎 Ejemplos reales de Mojibake (UTF-8 leído como Windows-1252)
| Texto correcto (UTF-8) | Mojibake (leído como Win-1252) | Explicación |
|---|---|---|
| á | á | UTF-8: C3 A1 → Win-1252 lee à + ¡ |
| é | é | UTF-8: C3 A9 → Win-1252 lee à + © |
| í | à | UTF-8: C3 AD → Win-1252 lee à + |
| ó | ó | UTF-8: C3 B3 → Win-1252 lee à + ³ |
| ú | ú | UTF-8: C3 BA → Win-1252 lee à + º |
| ñ | ñ | UTF-8: C3 B1 → Win-1252 lee à + ± |
| ¿ | ¿ | UTF-8: C2 BF → Win-1252 lee  + ¿ |
| Colombia | Colombia | Sin acentos: sin problema (ASCII puro) |
✅ ¿Cuál encoding debo usar?
| Situación | Encoding recomendado | Razón |
|---|---|---|
| Página web o app | UTF-8 | <meta charset="utf-8"> — estándar universal |
| Base de datos MySQL | utf8mb4 | utf8 solo soporta 3 bytes; utf8mb4 soporta emojis (4 bytes) |
| API / JSON | UTF-8 | El estándar JSON (RFC 8259) requiere UTF-8 |
| Archivo .csv para Excel (solo España/Colombia) | Windows-1252 | Excel en Windows abre Win-1252 sin errores; UTF-8 puede mostrarse mal sin BOM |
| Correo electrónico (SMTP) | UTF-8 | Compatible con todos los clientes de correo modernos |
| Código fuente PHP/Python/JS | UTF-8 | Los editores modernos (VS Code, Notepad++) usan UTF-8 por defecto |
| Sistema antiguo solo en inglés | ASCII | 128 caracteres son suficientes; ocupa menos espacio |
💡 Regla de oro: En cualquier proyecto nuevo, usa siempre UTF-8. Es compatible con ASCII, soporta todos los idiomas, y no da problemas de mojibake entre sistemas.
📚 Teoría
El Código ASCII (se pronuncia áski) fue creado en 1963 por la American Standards Association y publicado como estándar en 1967. Su objetivo: que todas las computadoras pudieran comunicarse usando los mismos códigos numéricos para representar caracteres.
Antes de ASCII, cada fabricante usaba su propio sistema → las máquinas no se entendían entre sí. ASCII resolvió ese problema definiendo que, por ejemplo, la letra A siempre es el número 65, la letra a es el 97, y el dígito 0 es el 48.
Una computadora solo maneja 0 y 1 (bits). Para guardar un carácter ASCII se usan 7 bits → 2⁷ = 128 combinaciones posibles (0 a 127).
El ASCII extendido usa 8 bits → 2⁸ = 256 combinaciones (0 a 255), añadiendo caracteres especiales, acentos y símbolos de caja de dibujo.
| Carácter | Decimal | Hexadecimal | Octal | Binario (7 bits) |
|---|---|---|---|---|
| A | 65 | 41 | 101 | 1000001 |
| B | 66 | 42 | 102 | 1000010 |
| a | 97 | 61 | 141 | 1100001 |
| z | 122 | 7A | 172 | 1111010 |
| 0 | 48 | 30 | 060 | 0110000 |
| 9 | 57 | 39 | 071 | 0111001 |
| @ | 64 | 40 | 100 | 1000000 |
| ! | 33 | 21 | 041 | 0100001 |
💡 Truco: Las letras mayúsculas (A=65) y minúsculas (a=97) difieren en exactamente 32. ¡Por eso cambiar el bit 5 convierte entre mayúsculas y minúsculas!
🔵 Caracteres de Control (0–31 y 127)
No son visibles en pantalla. Controlan dispositivos y flujo de datos.
- 0 — NUL (nulo)
- 7 — BEL (campana 🔔)
- 8 — BS (retroceso)
- 9 — TAB (tabulación)
- 10 — LF (salto de línea)
- 13 — CR (retorno de carro)
- 27 — ESC (escape)
🟢 Caracteres Imprimibles (32–126)
Visibles en pantalla. Forman el texto cotidiano.
- 32 — Espacio
- 33–47 — Signos (! " # $ % …)
- 48–57 — Dígitos 0–9
- 58–64 — Signos (: ; = ? @)
- 65–90 — Letras A–Z
- 91–96 — Símbolos [ \ ] ^ _
- 97–122 — Letras a–z
- 123–126 — Símbolos { | } ~
🟡 ASCII Extendido (128–255)
Añade caracteres europeos, acentos y símbolos gráficos.
- 128–175 — Acentos y ñ
- 176–223 — Cajas y líneas
- 224–239 — Letras griegas (α β γ)
- 240–255 — Símbolos matemáticos
- Ej: 160=á 161=í 162=ó 164=ñ 165=Ñ
💻 En programación
- • Comparar caracteres con sus valores numéricos
- • Convertir mayúsculas↔minúsculas (sumar/restar 32)
- • Validar si un carácter es dígito (48–57), letra (65–90 / 97–122)
- • Detectar fin de cadena con el carácter NUL (0) en C/C++
- • Codificar URLs (%20 = espacio ASCII 32)
🌐 En sistemas y redes
- • Protocolos de texto: HTTP, FTP, SMTP, HTML
- • Archivos de configuración y código fuente
- • Base de Unicode (los primeros 128 son idénticos)
- • Arte ASCII en interfaces de terminal
- • Emojis y caracteres especiales en HTML (A = A)
🎨 Arte ASCII — Ejemplo (hecho solo con caracteres ASCII):
ASCII (1963)
- • 7 bits → 128 caracteres
- • Solo inglés básico
- • Sin ñ, á, é, í, ó, ú, ü
- • Sin emojis
- • Estándar simple y rápido
- • Usado en comunicaciones básicas
Unicode / UTF-8 (1991)
- • Hasta 4 bytes → más de 1.1 millones de caracteres
- • Todos los idiomas del mundo
- • Árabe, chino, japonés, coreano…
- • Emojis 😀 🎉 ❤️
- • Compatible con ASCII (mismos primeros 128)
- • Estándar de la web moderna
💡 Dato clave: Unicode fue diseñado para ser retrocompatible con ASCII. Los primeros 128 caracteres de Unicode son exactamente iguales a ASCII.
📋 Tabla ASCII Completa
Haz clic en cualquier fila para copiar el carácter. Filtra por número, carácter o categoría.
| Dec | Hex | Oct | Binario | Carácter | Descripción | Grupo |
|---|
* Haz clic en una fila para copiar el carácter al portapapeles.
🔄 Conversor Interactivo
✏️ Texto → Códigos ASCII
Escribe cualquier texto y obtén sus valores en decimal, hexadecimal y binario.
🔢 Códigos ASCII → Texto
Ingresa números decimales separados por espacios o comas.
⚡ Ejemplos rápidos — haz clic para cargar:
📖 Diccionario de Términos
🎥 Videos Explicativos
Videos en español para reforzar lo aprendido.
¿Qué es el código ASCII? — Explicación completa
Código ASCII explicado en 5 minutos
Cómo escribir caracteres ASCII desde el teclado (Alt+número)
Convertir texto a binario usando ASCII
🧠 Cuestionario
10 preguntas aleatorias del banco de 50. Calificación de 0 a 100.
Tu calificación: