Glossary
Byte mode
Byte mode is the QR encoding for arbitrary data at 8 bits per byte, used whenever a payload contains anything outside the numeric or alphanumeric sets — which means almost every real URL. The specification's default charset is ISO 8859-1, but universal practice is UTF-8, which every modern reader detects.
The default in practice
Numeric and alphanumeric modes are
optimisations for restricted character sets; byte mode (indicator 0100) takes anything.
One lowercase letter, ?, = or & in a payload lands the segment here, so ordinary
URLs, WiFi credentials and vCards are byte mode almost without exception.
Capacity tops out at 2,953 bytes at version 40-L — the lowest of the text ceilings in
the capacity table, because 8 bits per character
is the least compact packing.
Note the unit: bytes, not characters. In UTF-8, é costs 2 bytes and a kanji or emoji 3–4,
so a code's character capacity shrinks with non-ASCII text.
The character-set wrinkle
ISO/IEC 18004 defines byte mode's default interpretation as ISO 8859-1 (Latin-1); a conforming encoder should announce anything else with an ECI header. Real life diverged years ago: virtually all generators write plain UTF-8 without ECI, and virtually all readers sniff the bytes and decode UTF-8 correctly — UseQR does the same, expanding text to UTF-8 octets before encoding. The residual risk sits with old or industrial decoders reading accented Latin-1-range text; the details and edge cases live in UTF-8 and Unicode in QR codes. When a payload carries non-ASCII text, decode it with the reader your audience will use before printing.
FAQ
What encoding does a QR code use for text?
Byte mode with UTF-8 in nearly all real generators, though the specification's nominal default is ISO 8859-1. Modern phone readers detect UTF-8 automatically, including emoji and non-Latin scripts.
Why does my QR code hold fewer characters than the advertised maximum?
The 2,953 ceiling counts bytes. UTF-8 spends 2–4 bytes on each non-ASCII character, and any error-correction level above L reduces the budget further.
Can a QR code contain emoji?
Yes — an emoji is simply 4 UTF-8 bytes in byte mode. Whether it displays depends on the scanning app, not the code.
Try it — free, no signup
Related
- Alphanumeric mode — Alphanumeric mode encodes a fixed 45-character set at 5.5 bits per character — two characters per 11 bits — with no lowercase letters in the set.
- 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.
- ECI (Extended Channel Interpretation) — ECI is a mechanism for declaring which character set a QR code's byte data uses. Without it, byte mode has no declared encoding, and decoders simply guess…
- 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…