Qraft

Modo de codificación

El modo de codificación es el método utilizado para convertir datos en patrones de módulos del código QR. Existen cuatro tipos: numérico (solo 0-9), alfanumérico (0-9, A-Z, algunos símbolos), byte (datos binarios arbitrarios) y kanji (caracteres kanji Shift JIS).

El modo numérico consume la menor cantidad de bits por carácter, almacenando más datos en el mismo tamaño de código QR. Los generadores de códigos QR normalmente seleccionan automáticamente el modo más eficiente para los datos de entrada. El modo alfanumérico solo admite 45 caracteres (0-9, A-Z en mayúsculas, el espacio y $ % * + - . / :), por lo que una URL corriente con minúsculas se codifica en modo byte. Como el modo alfanumérico gasta 5,5 bits por carácter frente a los 8 bits del modo byte, convertir la URL completa a mayúsculas para que todos sus caracteres queden dentro de esos 45 permite que la misma URL quepa en un símbolo más pequeño. Poner en mayúsculas solo el dominio no sirve: si el esquema https:// sigue en minúsculas, los datos se codifican en modo byte.

La elección del modo influye directamente en el volumen de datos y en el tamaño del símbolo. Almacenar datos formados solo por dígitos en modo alfanumérico hace que el cuerpo de los datos ocupe unas 1,7 veces los bits del modo numérico (61 bits frente a 37 en un número de teléfono de 11 dígitos). A la inversa, las cadenas diseñadas únicamente con letras mayúsculas y dígitos, como los códigos de producto o los números de serie, caben en el modo alfanumérico, pero basta una minúscula o un guion bajo para que vuelvan al modo byte. El modo kanji representa cada carácter de doble byte de Shift JIS en 13 bits, por lo que el mismo texto japonés ocupa menos datos que si se mantiene como UTF-8 en modo byte (3 bytes = 24 bits por carácter), aunque no puede usarse cuando el texto contiene caracteres que no existen en Shift JIS. Al especificar el modo a mano, confirme primero que todos los caracteres que se van a almacenar están dentro del conjunto de caracteres de ese modo.

El modo con el que se codificaron los datos se indica mediante un indicador de modo (Mode Indicator) de 4 bits situado al comienzo del flujo de datos. El modo numérico es 0001, el alfanumérico 0010, el modo byte 0100 y el modo kanji 1000. El lector examina estos cuatro bits para decidir cómo interpretar los datos que siguen.