Skip to content
Fundamentals

QR Code Character Encoding: UTF-8, ISO-8859-1, and ECI Explained

Codexengr, QR Systems Engineer
Published 2026-07-20 (Updated 2026-10-05)
6 min read
Peer Reviewed & Fact Checked

1. The Default Is Not UTF-8

In byte mode a QR code stores raw bytes. The original standard defines the default interpretation as ISO/IEC 8859-1 (Latin-1). Many modern readers guess UTF-8 anyway, but guessing is not guaranteed.

2. Extended Channel Interpretation

ECI is a header that tells the reader which character set follows. ECI 3 denotes ISO-8859-1 and ECI 26 denotes UTF-8. Some generators add the ECI header for non-Latin text, and some readers display it incorrectly or reject it, so test both.

3. Safe Practice for Urdu, Arabic and Emoji

1. Encode as UTF-8. 2. Prefer encoding a URL (ASCII) and putting the Urdu or Arabic text on the destination page. 3. Test on at least one iPhone and two Android models before printing.

Frequently Asked Questions

Why do accented letters show as symbols?

The reader decoded UTF-8 bytes as Latin-1, or the reverse. Make the encoding explicit with ECI or avoid non-ASCII in the payload.

Can I put Urdu text directly in a QR code?

Yes in UTF-8, but a URL to a web page is more reliable and keeps the symbol smaller.

Ready to generate high-precision QR codes?

Test your designs in real-time with our 100% client-side QR studio suite. Zero tracking, instant vector downloads.

Open Studio