Modos de codificação do QR Code: numérico, alfanumérico e byte
Antes de gravar qualquer coisa, o codificador escolhe como representar o texto em bits. Essa escolha muda o tamanho do símbolo de forma significativa — e é o motivo pelo qual escrever a mesma frase em maiúsculas, sem acento, pode fazê-la caber num código menor.
Os três modos que importam
| Modo | Aceita | Bits por caractere | Indicador |
|---|---|---|---|
| Numérico | 0 a 9 | 3,33 | 0001 |
| Alfanumérico | 0–9, A–Z maiúsculas, espaço e $ % * + - . / : |
5,5 | 0010 |
| Byte | qualquer byte, na prática UTF-8 | 8 | 0100 |
| Kanji | caracteres japoneses Shift JIS | 13 | 1000 |
O modo numérico agrupa três dígitos em 10 bits; o alfanumérico agrupa dois caracteres em 11 bits; o byte grava um byte por vez. O modo Kanji existe na norma pela origem japonesa do formato e não tem uso em português — este site não o utiliza.
O efeito na prática
O mesmo conteúdo, escrito de formas diferentes, produz símbolos de tamanhos diferentes. Todos os casos abaixo com correção M:
| Conteúdo | Observação | Modo escolhido | Bytes | Versão | Módulos |
|---|---|---|---|---|---|
12345678901234567890 | só dígitos | numérico | 20 | 1 | 21×21 |
PROMOCAO 2026 - LOJA CENTRO | maiúsculas, números e sinais permitidos | alfanumérico | 27 | 2 | 25×25 |
Promoção 2026 - Loja Centro | o mesmo texto com minúsculas e acento | byte (UTF-8) | 29 | 3 | 29×29 |
https://www.exemplo.com.br | um endereço comum | byte (UTF-8) | 26 | 2 | 25×25 |
Repare nas duas linhas do meio: é a mesma frase. A versão com minúsculas e acento sai maior
porque cai no modo byte, e ainda paga dois bytes por caractere acentuado.
Em etiqueta industrial, código de patrimônio e rastreio interno, escrever em maiúsculas
sem acento é dinheiro em área impressa. Já em endereço da web isso não ajuda: o
:// e as barras já obrigam o modo byte.
O contador de caracteres
Logo depois do indicador de modo vem um campo que declara quantos caracteres foram codificados. O tamanho desse campo muda conforme a faixa de versão — e é por isso que a capacidade não cresce de forma perfeitamente proporcional:
| Faixa de versão | Numérico | Alfanumérico | Byte |
|---|---|---|---|
| 1 a 9 | 10 bits | 9 bits | 8 bits |
| 10 a 26 | 12 bits | 11 bits | 16 bits |
| 27 a 40 | 14 bits | 13 bits | 16 bits |
Um detalhe que surpreende: no modo byte, o contador salta de 8 para 16 bits na versão 10. Isso significa que um conteúdo que caberia com folga na versão 9 pode, ao passar de 255 bytes, exigir a versão 10 e ainda perder um byte de capacidade para o contador maior.
Segmentação: misturar modos no mesmo símbolo
A norma permite que um único QR Code contenha vários segmentos, cada um em seu
modo. Um código de rastreio como PEDIDO-2026-000123456789 poderia ser dividido em um
segmento alfanumérico para o prefixo e um numérico para os dígitos, economizando bits.
Na prática, o ganho só compensa em conteúdo longo e muito estruturado: cada troca de segmento custa 4 bits de indicador de modo mais o contador. Este site usa um único segmento, no modo mais econômico que representa o conteúdo inteiro — a escolha que produz o menor símbolo na esmagadora maioria dos casos reais.
Os 45 caracteres do modo alfanumérico
A tabela é fechada e não tem nada além disto — nem minúscula, nem acento, nem arroba, nem interrogação, nem underline:
| Valor | Caracteres |
|---|---|
| 0 a 9 | 0 1 2 3 4 5 6 7 8 9 |
| 10 a 35 | A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
| 36 a 44 | espaço $ % *
+ - . / : |
A codificação pega os caracteres de dois em dois: o valor do primeiro é multiplicado por 45 e somado ao do segundo, e o resultado vai em 11 bits. Sobrando um caractere ímpar no fim, ele vai sozinho em 6 bits. É por isso que o custo médio é 5,5 bits por caractere — e por isso que uma cadeia com número ímpar de caracteres desperdiça meio byte.
Um efeito curioso e útil: HTTPS://EXEMPLO.COM.BR é alfanumérico válido (dois-pontos
e barra estão na tabela), enquanto https://exemplo.com.br não é. Domínios são
insensíveis a maiúsculas, então escrever o endereço todo em maiúsculas pode reduzir uma
versão do símbolo — desde que o caminho depois da barra também respeite a tabela, o que
normalmente não acontece, porque caminho é sensível a maiúsculas.
Como escrever para ocupar menos
- Corte o
www.quando o site responder sem ele: são 4 bytes. - Prefira endereço curto a parâmetro de campanha longo. Um
?utm_source=cartaz-loja-centro&utm_medium=impressocusta mais de 50 bytes e quase sempre pode ser trocado por?o=1com a mesma medição do seu lado. - Em código interno (patrimônio, lote, rastreio), use só maiúsculas, números e os sinais permitidos: o modo alfanumérico economiza cerca de 30% dos bits.
- Evite acento no que não precisa: em nome de campanha e identificador, cada acentuado custa dois bytes.
- Não abrevie o conteúdo que a pessoa vai ler — mensagem de WhatsApp e vCard existem para ser lidos. Economize onde ninguém vê.
Perguntas frequentes
Por que o QR Code com minúsculas fica maior?
Porque minúscula não existe no modo alfanumérico, que gasta 5,5 bits por caractere. Com uma única minúscula, o codificador precisa usar o modo byte, de 8 bits por caractere — quase 50% a mais.
Acentos funcionam no QR Code?
Funcionam: vão no modo byte, gravados em UTF-8, que é o que os leitores de celular assumem por padrão. Cada caractere acentuado ocupa dois bytes. Só evite acento onde o formato proíbe — no BR Code do Pix, por exemplo, nome e cidade têm que ser sem acento.
O que é o modo ECI?
Uma extensão que declara explicitamente a codificação de caracteres usada (por exemplo ISO-8859-1 ou UTF-8). Alguns leitores antigos precisavam dela; os atuais assumem UTF-8. Este site não emite ECI, o que é o comportamento mais compatível hoje.
Como escolher o modo no gerador?
Você não escolhe: o codificador analisa o conteúdo e usa o modo mais econômico que consegue representá-lo inteiro. Se quiser forçar o modo alfanumérico, escreva tudo em maiúsculas, sem acento e usando apenas os sinais permitidos.