Quantos caracteres cabem num QR Code: tabela das 40 versões
A capacidade de um QR Code depende de três coisas ao mesmo tempo: a versão (o tamanho do símbolo), o nível de correção de erro e o modo de codificação. As tabelas abaixo trazem as 480 combinações, calculadas a partir dos parâmetros da ISO/IEC 18004.
Modo numérico — só dígitos de 0 a 9
É o modo mais econômico: cada grupo de três dígitos ocupa 10 bits, o que dá cerca de 3,33 bits por dígito. Serve para código de rastreio numérico, matrícula, número de série e leitura industrial.
| Versão | Módulos | L | M | Q | H |
|---|---|---|---|---|---|
| 1 | 21×21 | 41 | 34 | 27 | 17 |
| 2 | 25×25 | 77 | 63 | 48 | 34 |
| 3 | 29×29 | 127 | 101 | 77 | 58 |
| 4 | 33×33 | 187 | 149 | 111 | 82 |
| 5 | 37×37 | 255 | 202 | 144 | 106 |
| 6 | 41×41 | 322 | 255 | 178 | 139 |
| 7 | 45×45 | 370 | 293 | 207 | 154 |
| 8 | 49×49 | 461 | 365 | 259 | 202 |
| 9 | 53×53 | 552 | 432 | 312 | 235 |
| 10 | 57×57 | 652 | 513 | 364 | 288 |
| 11 | 61×61 | 772 | 604 | 427 | 331 |
| 12 | 65×65 | 883 | 691 | 489 | 374 |
| 13 | 69×69 | 1.022 | 796 | 580 | 427 |
| 14 | 73×73 | 1.101 | 871 | 621 | 468 |
| 15 | 77×77 | 1.250 | 991 | 703 | 530 |
| 16 | 81×81 | 1.408 | 1.082 | 775 | 602 |
| 17 | 85×85 | 1.548 | 1.212 | 876 | 674 |
| 18 | 89×89 | 1.725 | 1.346 | 948 | 746 |
| 19 | 93×93 | 1.903 | 1.500 | 1.063 | 813 |
| 20 | 97×97 | 2.061 | 1.600 | 1.159 | 919 |
| 21 | 101×101 | 2.232 | 1.708 | 1.224 | 969 |
| 22 | 105×105 | 2.409 | 1.872 | 1.358 | 1.056 |
| 23 | 109×109 | 2.620 | 2.059 | 1.468 | 1.108 |
| 24 | 113×113 | 2.812 | 2.188 | 1.588 | 1.228 |
| 25 | 117×117 | 3.057 | 2.395 | 1.718 | 1.286 |
| 26 | 121×121 | 3.283 | 2.544 | 1.804 | 1.425 |
| 27 | 125×125 | 3.517 | 2.701 | 1.933 | 1.501 |
| 28 | 129×129 | 3.669 | 2.857 | 2.085 | 1.581 |
| 29 | 133×133 | 3.909 | 3.035 | 2.181 | 1.677 |
| 30 | 137×137 | 4.158 | 3.289 | 2.358 | 1.782 |
| 31 | 141×141 | 4.417 | 3.486 | 2.473 | 1.897 |
| 32 | 145×145 | 4.686 | 3.693 | 2.670 | 2.022 |
| 33 | 149×149 | 4.965 | 3.909 | 2.805 | 2.157 |
| 34 | 153×153 | 5.253 | 4.134 | 2.949 | 2.301 |
| 35 | 157×157 | 5.529 | 4.343 | 3.081 | 2.361 |
| 36 | 161×161 | 5.836 | 4.588 | 3.244 | 2.524 |
| 37 | 165×165 | 6.153 | 4.775 | 3.417 | 2.625 |
| 38 | 169×169 | 6.479 | 5.039 | 3.599 | 2.735 |
| 39 | 173×173 | 6.743 | 5.313 | 3.791 | 2.927 |
| 40 | 177×177 | 7.089 | 5.596 | 3.993 | 3.057 |
Modo alfanumérico — 45 caracteres
Aceita os dígitos 0–9, as letras maiúsculas A–Z, o espaço e os símbolos
$ % * + - . / :. Cada par de caracteres ocupa 11 bits (5,5 bits por caractere).
Letra minúscula, acento, arroba ou barra invertida não existem neste modo — a
presença de qualquer um deles obriga o codificador a usar o modo byte, mais caro.
| Versão | Módulos | L | M | Q | H |
|---|---|---|---|---|---|
| 1 | 21×21 | 25 | 20 | 16 | 10 |
| 2 | 25×25 | 47 | 38 | 29 | 20 |
| 3 | 29×29 | 77 | 61 | 47 | 35 |
| 4 | 33×33 | 114 | 90 | 67 | 50 |
| 5 | 37×37 | 154 | 122 | 87 | 64 |
| 6 | 41×41 | 195 | 154 | 108 | 84 |
| 7 | 45×45 | 224 | 178 | 125 | 93 |
| 8 | 49×49 | 279 | 221 | 157 | 122 |
| 9 | 53×53 | 335 | 262 | 189 | 143 |
| 10 | 57×57 | 395 | 311 | 221 | 174 |
| 11 | 61×61 | 468 | 366 | 259 | 200 |
| 12 | 65×65 | 535 | 419 | 296 | 227 |
| 13 | 69×69 | 619 | 483 | 352 | 259 |
| 14 | 73×73 | 667 | 528 | 376 | 283 |
| 15 | 77×77 | 758 | 600 | 426 | 321 |
| 16 | 81×81 | 854 | 656 | 470 | 365 |
| 17 | 85×85 | 938 | 734 | 531 | 408 |
| 18 | 89×89 | 1.046 | 816 | 574 | 452 |
| 19 | 93×93 | 1.153 | 909 | 644 | 493 |
| 20 | 97×97 | 1.249 | 970 | 702 | 557 |
| 21 | 101×101 | 1.352 | 1.035 | 742 | 587 |
| 22 | 105×105 | 1.460 | 1.134 | 823 | 640 |
| 23 | 109×109 | 1.588 | 1.248 | 890 | 672 |
| 24 | 113×113 | 1.704 | 1.326 | 963 | 744 |
| 25 | 117×117 | 1.853 | 1.451 | 1.041 | 779 |
| 26 | 121×121 | 1.990 | 1.542 | 1.094 | 864 |
| 27 | 125×125 | 2.132 | 1.637 | 1.172 | 910 |
| 28 | 129×129 | 2.223 | 1.732 | 1.263 | 958 |
| 29 | 133×133 | 2.369 | 1.839 | 1.322 | 1.016 |
| 30 | 137×137 | 2.520 | 1.994 | 1.429 | 1.080 |
| 31 | 141×141 | 2.677 | 2.113 | 1.499 | 1.150 |
| 32 | 145×145 | 2.840 | 2.238 | 1.618 | 1.226 |
| 33 | 149×149 | 3.009 | 2.369 | 1.700 | 1.307 |
| 34 | 153×153 | 3.183 | 2.506 | 1.787 | 1.394 |
| 35 | 157×157 | 3.351 | 2.632 | 1.867 | 1.431 |
| 36 | 161×161 | 3.537 | 2.780 | 1.966 | 1.530 |
| 37 | 165×165 | 3.729 | 2.894 | 2.071 | 1.591 |
| 38 | 169×169 | 3.927 | 3.054 | 2.181 | 1.658 |
| 39 | 173×173 | 4.087 | 3.220 | 2.298 | 1.774 |
| 40 | 177×177 | 4.296 | 3.391 | 2.420 | 1.852 |
Modo byte — qualquer texto, em UTF-8
Oito bits por byte. É o modo usado por praticamente todo QR Code do dia a dia, porque endereços
contêm :// e minúsculas. Atenção ao acento: em UTF-8, ç, ã e
é ocupam dois bytes cada. Uma frase de 100 caracteres com 12 acentos
ocupa 112 bytes, não 100.
| Versão | Módulos | L | M | Q | H |
|---|---|---|---|---|---|
| 1 | 21×21 | 17 | 14 | 11 | 7 |
| 2 | 25×25 | 32 | 26 | 20 | 14 |
| 3 | 29×29 | 53 | 42 | 32 | 24 |
| 4 | 33×33 | 78 | 62 | 46 | 34 |
| 5 | 37×37 | 106 | 84 | 60 | 44 |
| 6 | 41×41 | 134 | 106 | 74 | 58 |
| 7 | 45×45 | 154 | 122 | 86 | 64 |
| 8 | 49×49 | 192 | 152 | 108 | 84 |
| 9 | 53×53 | 230 | 180 | 130 | 98 |
| 10 | 57×57 | 271 | 213 | 151 | 119 |
| 11 | 61×61 | 321 | 251 | 177 | 137 |
| 12 | 65×65 | 367 | 287 | 203 | 155 |
| 13 | 69×69 | 425 | 331 | 241 | 177 |
| 14 | 73×73 | 458 | 362 | 258 | 194 |
| 15 | 77×77 | 520 | 412 | 292 | 220 |
| 16 | 81×81 | 586 | 450 | 322 | 250 |
| 17 | 85×85 | 644 | 504 | 364 | 280 |
| 18 | 89×89 | 718 | 560 | 394 | 310 |
| 19 | 93×93 | 792 | 624 | 442 | 338 |
| 20 | 97×97 | 858 | 666 | 482 | 382 |
| 21 | 101×101 | 929 | 711 | 509 | 403 |
| 22 | 105×105 | 1.003 | 779 | 565 | 439 |
| 23 | 109×109 | 1.091 | 857 | 611 | 461 |
| 24 | 113×113 | 1.171 | 911 | 661 | 511 |
| 25 | 117×117 | 1.273 | 997 | 715 | 535 |
| 26 | 121×121 | 1.367 | 1.059 | 751 | 593 |
| 27 | 125×125 | 1.465 | 1.125 | 805 | 625 |
| 28 | 129×129 | 1.528 | 1.190 | 868 | 658 |
| 29 | 133×133 | 1.628 | 1.264 | 908 | 698 |
| 30 | 137×137 | 1.732 | 1.370 | 982 | 742 |
| 31 | 141×141 | 1.840 | 1.452 | 1.030 | 790 |
| 32 | 145×145 | 1.952 | 1.538 | 1.112 | 842 |
| 33 | 149×149 | 2.068 | 1.628 | 1.168 | 898 |
| 34 | 153×153 | 2.188 | 1.722 | 1.228 | 958 |
| 35 | 157×157 | 2.303 | 1.809 | 1.283 | 983 |
| 36 | 161×161 | 2.431 | 1.911 | 1.351 | 1.051 |
| 37 | 165×165 | 2.563 | 1.989 | 1.423 | 1.093 |
| 38 | 169×169 | 2.699 | 2.099 | 1.499 | 1.139 |
| 39 | 173×173 | 2.809 | 2.213 | 1.579 | 1.219 |
| 40 | 177×177 | 2.953 | 2.331 | 1.663 | 1.273 |
Como usar essa tabela na prática
Três leituras que resolvem a maior parte das dúvidas:
- Para saber se o seu conteúdo cabe, conte os bytes (não os caracteres) e procure a primeira versão cuja coluna do seu nível de correção passe desse número. Essa será a versão escolhida pelo codificador.
- Para diminuir o símbolo, encurte o conteúdo antes de baixar a correção de erro. Tirar 20 caracteres do endereço costuma render mais que descer de M para L.
- Para material impresso pequeno, mire na versão 4 ou menor (33×33 módulos). A partir da versão 10, o símbolo já exige cuidado de impressão.
Perguntas frequentes
Qual o limite máximo de um QR Code?
2.953 bytes, ou 7.089 dígitos, na versão 40 com correção L. Na prática o limite útil é bem menor: um símbolo de versão 40 tem 177 módulos de lado e precisa de impressão grande e precisa para ser lido. Conteúdo longo quase sempre deve virar um endereço curto para uma página.
Por que meu texto com acento ocupa mais espaço?
Porque o modo byte grava em UTF-8, e nesse padrão os caracteres acentuados ocupam dois bytes. Além disso, qualquer minúscula ou acento impede o uso do modo alfanumérico, que seria mais econômico. Escrever em maiúsculas sem acento pode reduzir o símbolo em uma ou duas versões.
A capacidade é a mesma em todos os geradores?
É — ela vem da norma, não do gerador. O que muda entre geradores é a escolha do modo e a otimização por segmentos: implementações mais sofisticadas dividem o conteúdo em trechos e usam o modo mais econômico em cada um, o que às vezes economiza uma versão.
O que acontece se eu passar do limite?
O gerador não consegue produzir o símbolo e avisa. Não existe QR Code "acima da versão 40": o jeito é reduzir o conteúdo, baixar o nível de correção ou — a solução certa na maioria dos casos — apontar para um endereço em vez de embutir o texto inteiro.