Glossary
Alphanumeric mode
Alphanumeric mode encodes a fixed set of 45 characters — digits, uppercase A–Z, space and the symbols $ % * + - . / : — in pairs of 11 bits, about 5.5 bits per character versus 8 in byte mode. Lowercase letters are excluded, so one lowercase character forces byte mode.
The 45-character set
Each character maps to a value 0–44: digits to 0–9, A–Z to 10–35, then space and
$ % * + - . / : filling 36–44. A pair encodes as 45 × first + second in 11 bits; a
trailing single character takes 6. The full value table is in the
character set reference, and the mode's ceiling —
4,296 characters at version 40-L — in the
capacity table.
The set was chosen in 1994 with industrial part numbers in mind, which is why it contains
/ and : (enough for a URL's scheme) but no lowercase, no =, &, ?, # or _.
The uppercase-URL trick
Because scheme and hostname are case-insensitive, HTTPS://EXAMPLE.COM/MENU is a valid URL
that stays entirely inside the set, encoding roughly 31% smaller than its lowercase
form — often one whole version smaller, meaning larger
modules at the same printed size. The limits:
- Paths are frequently case-sensitive; uppercase only the scheme and host unless you control the server.
- Any query string (
?a=b) breaks eligibility —?,=and&are not in the set. - Encoders switch modes automatically; you cannot request alphanumeric, only supply text that qualifies. Decode a code to see which mode it used.
FAQ
Why doesn't a QR code's alphanumeric mode include lowercase letters?
The 45-value set had to fit two characters into 11 bits (45² = 2,025 < 2,048). Adding 26 lowercase letters would need 71 values, and 71² overflows 12 bits — so 1994's designers kept uppercase only.
Does capitalising a URL really make the QR code smaller?
Yes — an all-uppercase URL without a query string encodes at 5.5 bits per character instead of 8, often dropping the code a full version. The win disappears the moment any character falls outside the 45-character set.
Try it — free, no signup
Related
- Numeric mode — Numeric mode packs three digits into ten bits — 3.33 bits per digit — making all-digit payloads the densest thing a QR code can hold: 7,089 characters.
- Byte mode — Byte mode stores arbitrary 8-bit data — the workhorse encoding for URLs and mixed text, nominally ISO 8859-1 but UTF-8 in universal practice.
- Encoding mode — Encoding mode is how characters are packed into bits. QR codes support numeric (3.33 bits/char), alphanumeric (5.5), byte (8) and kanji (13), and a single…
- Data capacity — Data capacity is how much a QR code can hold, and it depends on three things at once: the version, the error-correction level and the encoding mode. The…