Četiri glavna načina
Svaki način mijenja raspon znakova za gustoću. Numerički način obrađuje samo znamenke, ali pakira po tri u 10 bitova, dok bajtovni način obrađuje bilo koji bajt, ali troši 8 bitova na svaki.
Alfanumerički način pokriva skup od 45 znakova: znamenke 0–9, velika slova A–Z, razmak i simbole $ % * + - . / te dvotočku. Mala slova nisu u skupu, zbog čega URL napisan samo velikim slovima može dati manji kod od istog URL-a napisanog malim slovima.
- Numerički: znamenke 0–9, 10 bitova na 3 znamenke
- Alfanumerički: 45 znakova, 11 bitova na 2 znaka
- Bajtovni: bilo koja 8-bitna vrijednost, 8 bitova po bajtu
- Kanji: dvobajtni znakovi Shift JIS, po 13 bitova
Pokazatelji načina i segmenti
Svaki niz podataka počinje 4-bitnim pokazateljem načina i brojem znakova, čija duljina ovisi o načinu i verziji. Kod može sadržavati više takvih segmenata, primjerice numerički za dugi niz znamenki i bajtovni za ostatak, što može smanjiti rezultat.
Drugi 4-bitni pokazatelji označuju značajke, a ne skupove znakova: ECI za deklariranje kodiranja znakova, strukturirano dodavanje za dijeljenje podataka na više kodova i FNC1 za GS1 i druge industrijske formate podataka. Završetak podataka označava terminator od četiri nulta bita.
- Numerički 0001, alfanumerički 0010, bajtovni 0100, kanji 1000
- ECI 0111, strukturirano dodavanje 0011
- FNC1 prvi položaj 0101, drugi položaj 1001
- Terminator 0000
Bajtovni način i skupovi znakova
Zadano tumačenje bajtovnog načina u normi je ISO-8859-1 (Latin-1), ali većina generatora danas piše UTF-8 kako bi slova s dijakriticima, druga pisma i emotikoni preživjeli. Čitači obično prepoznaju UTF-8 pregledom bajtova.
Kad skup znakova mora biti nedvosmislen, ECI zaglavlje može ga izričito deklarirati. Bez njega čitač povremeno može pogriješiti u pretpostavci i prikazati iskrivljene znakove.