Estándares y formatos

Modos de codificación del código QR: numérico, alfanumérico, byte, Kanji

Los códigos QR eligen un modo de codificación para empaquetar los datos de forma eficiente. Aprende cómo funcionan los modos numérico, alfanumérico, byte y Kanji.

Los modos de codificación del código QR son los cuatro "métodos de empaquetado" distintos que un código QR puede usar para convertir tu contenido en bits — numérico, alfanumérico, byte y Kanji — y elegir el adecuado es como un código mete la mayor cantidad de datos en el cuadrado más pequeño.

No todos los datos son iguales. Un número de teléfono son solo dígitos; una dirección web mezcla letras, barras y puntos; un mensaje puede contener letras acentuadas o caracteres japoneses. Los códigos QR manejan esto con cuatro modos de codificación especializados, cada uno optimizado para un tipo concreto de contenido. Entenderlos explica por qué algunos códigos son más densos que otros — y por qué las URL se comportan como lo hacen. Vamos a profundizar. 🐾

¿Por qué tener distintos modos siquiera?

Todo el sentido de los modos de codificación es la eficiencia. Si un código QR sabe que solo necesita almacenar dígitos, puede usar muchos menos bits por carácter que si tuviera que estar preparado para cualquier símbolo posible. Menos bits significa un código más pequeño y denso que se escanea más rápido y con más fiabilidad. Así que el estándar ofrece un menú de modos, y un codificador elige el que mejor encaja con tus datos. Nuestra guía sobre cómo funcionan los códigos QR muestra dónde encaja esto en el panorama general.

Modo 1: Numérico — solo dígitos

El modo numérico maneja los diez dígitos del 0 al 9 y nada más. Es, con diferencia, el modo más compacto, almacenando 3 dígitos en solo 10 bits. Eso equivale a unos 3,33 bits por dígito — mucho más ajustado que los 8 bits que normalmente ocuparía un carácter corriente.

El modo numérico es ideal para números de teléfono, códigos de producto, números de serie, identificadores de referencia y todo lo que sean puramente números. Como es tan eficiente, un código QR lleno de dígitos puede contener hasta aproximadamente 7.089 de ellos en el tamaño más grande.

Modo 2: Alfanumérico — un conjunto de 45 caracteres

El modo alfanumérico cubre un conjunto específico de 45 caracteres: los dígitos 0–9, las letras mayúsculas A–Z, el espacio y un puñado de símbolos ($ % * + - . / :). Empaqueta 2 caracteres en 11 bits, unos 5,5 bits cada uno — todavía mucho mejor que 8.

Fíjate en lo que no está ahí: las letras minúsculas, la mayoría de la puntuación y cualquier carácter acentuado o no latino. Por eso algunos códigos cortos y números de referencia se escriben todo en mayúsculas — les permite usar este modo eficiente. También es por lo que un enlace escrito enteramente en mayúsculas a veces puede generar un código ligeramente más pequeño.

Modo 3: Byte — el caballo de batalla de cada día

El modo byte (también llamado modo de 8 bits) almacena bytes en bruto, 8 bits por carácter. Es el comodín: todo lo que no encaja en los conjuntos numérico o alfanumérico va aquí. Por defecto, los bytes suelen interpretarse como ISO-8859-1 (Latin-1), y UTF-8 se usa habitualmente para un soporte de caracteres más amplio, a menudo señalizado con ECI (más sobre esto abajo).

El modo byte es menos compacto que los demás, pero puede representar casi cualquier cosa — letras minúsculas, puntuación completa, caracteres acentuados y más. Nuestro artículo sobre la codificación de caracteres y los códigos QR explica qué significan realmente esos valores de byte como texto.

Modo 4: Kanji — japonés compacto

El modo Kanji es un especialista. Almacena caracteres japoneses Shift-JIS en 13 bits cada uno, lo que es más eficiente que codificar los mismos caracteres como varios bytes UTF-8 en modo byte. Dado que los códigos QR se inventaron en Japón, tiene sentido que el estándar incorporara un modo dedicado y ahorrador de espacio para el sistema de escritura local. Para la mayoría de los usuarios occidentales rara vez se activa, pero es una gran ventaja para el texto japonés.

ModoManejaEficiencia de bitsMejor para
Numérico0–910 bits / 3 dígitosNúmeros de teléfono, identificadores
AlfanuméricoConjunto de 45 caracteres (mayúsculas, dígitos, pocos símbolos)11 bits / 2 caracteresCódigos cortos, números de referencia
ByteCualquier byte (Latin-1 / UTF-8)8 bits / carácterURL, texto general
KanjiJaponés Shift-JIS13 bits / carácterTexto japonés

¿Por qué las URL usan el modo byte?

Esto sorprende a la gente: las direcciones web casi siempre se codifican en modo byte, aunque parezca que podrían ser alfanuméricas. La razón es el conjunto de caracteres. Una URL típica contiene letras minúsculas (https://qr.puppy) y símbolos que no están en el conjunto alfanumérico de 45 caracteres. Como el modo alfanumérico se limita estrictamente a mayúsculas y a una corta lista de símbolos, cualquier letra minúscula o carácter no permitido fuerza al codificador al modo byte.

¿Quieres un código QR un poco más denso para un enlace? Algunas URL pueden acortarse, y unos pocos sistemas aceptan rutas en mayúsculas — pero para la mayoría de las direcciones del mundo real, el modo byte es sencillamente la opción honesta.

La conclusión práctica: mantén las URL cortas. Menos caracteres en modo byte significa un código más pequeño que se escanea con más facilidad. Nuestra guía sobre la capacidad de datos del código QR muestra cómo la longitud afecta al tamaño del código.

Cambio de modo dentro de un mismo código

Aquí hay un detalle ingenioso: un solo código QR no tiene que comprometerse con un único modo. El codificador puede cambiar de modo a mitad de los datos. Cada segmento empieza con un pequeño "indicador de modo" y un recuento de longitud, y luego el codificador puede saltar a un modo diferente para el siguiente segmento.

Imagina una carga como ORDER- seguida de un número largo seguido de una nota en minúsculas. Un codificador inteligente podría usar alfanumérico para el prefijo, numérico para los dígitos y byte para la nota — usando el modo más ajustado para cada parte. El coste de cambiar (unos pocos bits extra por segmento) suele valer la pena cuando los segmentos son lo bastante largos. Los buenos generadores de QR hacen esta optimización automáticamente.

ECI: decirle al escáner qué conjunto de caracteres usar

El modo byte almacena números en bruto, pero un escáner necesita saber qué significan esos números como texto. ¿El valor de byte 233 es una "é" en Latin-1, o parte de una secuencia UTF-8 de varios bytes? Ahí es donde entra ECI — Interpretación de Canal Extendida (Extended Channel Interpretation). ECI es un mecanismo que permite a un código QR declarar qué conjunto de caracteres o codificación usan sus bytes, para que el lector los interprete correctamente.

Sin un ECI explícito, los escáneres recurren a suposiciones (a menudo Latin-1, a veces detectando UTF-8 automáticamente), que es por lo que las letras acentuadas y los emojis a veces se corrompen entre distintas aplicaciones. Nuestro artículo sobre la codificación de caracteres y los códigos QR explica por qué ocurre eso y cómo ayuda ECI.

Cómo eligen un modo los codificadores

Normalmente no eliges un modo a mano. Cuando escribes contenido en un generador, este analiza tu texto y selecciona automáticamente el modo válido más eficiente — o una mezcla de modos. También decide la versión (tamaño) más pequeña que encaje y aplica tu nivel de corrección de errores elegido. El resultado es el cuadrado compacto y escaneable que ves. Para entender la parte del dimensionado, consulta la capacidad de datos y la anatomía de un código QR.

¿Tienes curiosidad por ver los modos en acción? Puedes crear un código QR gratis con QR Puppy — escribe dígitos, un enlace o texto, y observa cómo el código se ajusta para encajar.

Preguntas frecuentes

¿Qué modo de codificación es el más eficiente?

El modo numérico es el más ajustado, con 10 bits por cada 3 dígitos, así que los códigos hechos de números puros meten la mayor cantidad de caracteres. El alfanumérico es el siguiente, después el modo byte. El Kanji es eficiente específicamente para los caracteres japoneses Shift-JIS.

¿Por qué poner mi enlace en mayúsculas a veces encoge el código?

Porque las letras mayúsculas y los dígitos pueden encajar en el modo alfanumérico (11 bits por cada 2 caracteres), mientras que las minúsculas fuerzan el modo byte (8 bits cada una, pero con un conjunto de caracteres mayor). Si el host o la ruta de una URL tolera las mayúsculas, puede optar al modo más eficiente — aunque la mayoría de las URL reales acaban en modo byte de todos modos.

¿Necesito elegir el modo yo mismo?

No. Cualquier generador de QR decente analiza tu contenido y elige el mejor modo automáticamente, incluso cambiando de modo dentro de un solo código para ahorrar espacio. Tú solo introduces tus datos.

¿Qué es ECI en términos sencillos?

ECI (Interpretación de Canal Extendida) es una etiqueta dentro del código que le indica al escáner qué conjunto de caracteres usan los bytes — por ejemplo, UTF-8. Ayuda a que los caracteres acentuados y el texto no latino se decodifiquen correctamente en lugar de convertirse en símbolos corruptos.

¿Puede un solo código QR mezclar números, letras y símbolos?

Por supuesto. Un código puede contener varios segmentos, cada uno en su propio modo, así que una carga con un prefijo de código, un número y texto libre puede usar los modos alfanumérico, numérico y byte juntos para lograr la máxima eficiencia.

Crea un código QR de forma honesta 🐾

Gratis para siempre, sin rastreo, sin caducidad — generado en tu propio navegador.

🎨 Crear un código QR →