Glossary
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 — usually UTF-8 on phones, sometimes ISO-8859-1 on industrial scanners.
The problem it solves
The original specification defined byte mode as ISO-8859-1. In practice, essentially every modern generator emits UTF-8 and essentially every phone camera assumes UTF-8, so the world converged on an undeclared convention.
ECI makes it explicit: an ECI header carries an assignment number — \000026 for UTF-8,
\000003 for ISO-8859-1 — before the data.
Why it is used less than you would expect
Older and industrial scanners sometimes fail on an ECI header they do not understand, which makes adding it a compatibility risk rather than a compatibility fix. The pragmatic approach for phone-scanned codes is plain UTF-8 with no ECI.
If a code must be read by warehouse hardware, restrict the payload to ASCII and the question disappears entirely.
Related
- 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…
- Kanji mode — Kanji mode packs Shift-JIS double-byte characters into 13 bits each instead of the 16 bits they would take in byte mode. It exists because QR codes were…
- 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…