# 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.

Source: https://useqr.app/glossary/alphanumeric-mode · Last reviewed 2026-08-21 · UseQR is free forever, MIT licensed, no signup.

---

## 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](/docs/reference/character-set-reference), and the mode's ceiling —
**4,296** characters at version 40-L — in the
[capacity table](/docs/reference/qr-code-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](/glossary/version) smaller, meaning larger
[modules](/glossary/module) 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](/glossary/encoding-mode) automatically; you cannot request
  alphanumeric, only supply text that qualifies. [Decode a code](/validate) 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

- https://useqr.app/url
- https://useqr.app/text
- https://useqr.app/validate
