Štirje glavni načini
Vsak način zamenja razpon znakov za gostoto. Številski način obvlada samo števke, a jih tri spravi v 10 bitov, bajtni način obvlada vsak bajt, a porabi 8 bitov za vsakega.
Alfanumerični način pokriva nabor 45 znakov: števke 0–9, velike črke A–Z, presledek in simbole $ % * + - . / ter dvopičje. Malih črk v naboru ni, zato lahko URL, napisan samo z velikimi črkami, ustvari manjšo kodo kot isti URL z malimi.
- Številski: števke 0–9, 10 bitov na 3 števke
- Alfanumerični: 45 znakov, 11 bitov na 2 znaka
- Bajtni: poljubna 8-bitna vrednost, 8 bitov na bajt
- Kanji: dvobajtni znaki Shift JIS, vsak 13 bitov
Kazalniki načina in segmenti
Vsako zaporedje podatkov se začne s 4-bitnim kazalnikom načina in številom znakov, katerega dolžina je odvisna od načina in različice. Koda lahko vsebuje več takih segmentov, na primer številski za dolgo zaporedje števk in bajtni za preostalo, kar lahko rezultat zmanjša.
Drugi 4-bitni kazalniki signalizirajo funkcije in ne nabore znakov: ECI za deklaracijo kodiranja znakov, strukturirano dodajanje za razdelitev podatkov čez več kod in FNC1 za GS1 in druge industrijske podatkovne formate. Zaključek iz štirih ničelnih bitov konča podatke.
- Številski 0001, alfanumerični 0010, bajtni 0100, kanji 1000
- ECI 0111, strukturirano dodajanje 0011
- FNC1 prvi položaj 0101, drugi položaj 1001
- Zaključek 0000
Bajtni način in nabori znakov
Privzeta razlaga bajtnega načina v standardu je ISO-8859-1 (Latin-1), vendar večina današnjih generatorjev piše UTF-8, da naglašene črke, druge pisave in emojiji preživijo. Bralniki običajno zaznajo UTF-8 s pregledom bajtov.
Kjer mora biti nabor znakov nedvoumen, ga lahko izrecno razglasi glava ECI. Brez nje bralnik občasno ugane narobe in prikaže popačene znake.