Četri galvenie režīmi
Katrs režīms maina rakstzīmju klāstu pret blīvumu. Ciparu režīms apstrādā tikai ciparus, bet iepako trīs no tiem 10 bitos, kamēr baitu režīms apstrādā jebkuru baitu, bet katram tērē 8 bitus.
Burtciparu režīms aptver 45 rakstzīmju kopu: ciparus 0–9, lielos burtus A–Z, atstarpi un simbolus $ % * + - . / un kolu. Mazie burti kopā nav iekļauti, tāpēc URL tikai ar lielajiem burtiem var dot mazāku kodu nekā tas pats URL ar maziem burtiem.
- Ciparu: cipari 0–9, 10 biti uz 3 cipariem
- Burtciparu: 45 rakstzīmes, 11 biti uz 2 rakstzīmēm
- Baitu: jebkura 8 bitu vērtība, 8 biti uz baitu
- Kanji: Shift JIS divbaitu rakstzīmes, katra 13 biti
Režīma indikatori un segmenti
Katrs datu posms sākas ar 4 bitu režīma indikatoru un rakstzīmju skaitu, kura garums ir atkarīgs no režīma un versijas. Kods var saturēt vairākus šādus segmentus, piemēram, ciparu režīmu garai ciparu virknei un baitu režīmu pārējam, kas var padarīt rezultātu mazāku.
Citi 4 bitu indikatori norāda funkcijas, nevis rakstzīmju kopas: ECI rakstzīmju kodējuma deklarēšanai, strukturētā pievienošana datu sadalīšanai pa kodiem un FNC1 GS1 un citiem nozares datu formātiem. Datus beidz četru nulles bitu terminators.
- Ciparu 0001, burtciparu 0010, baitu 0100, kanji 1000
- ECI 0111, strukturētā pievienošana 0011
- FNC1 pirmā pozīcija 0101, otrā pozīcija 1001
- Terminators 0000
Baitu režīms un rakstzīmju kopas
Standarta noklusējuma baitu režīma interpretācija ir ISO-8859-1 (Latin-1), taču lielākā daļa ģeneratoru mūsdienās raksta UTF-8, lai saglabātu burtus ar diakritiskajām zīmēm, citas rakstības un emocijzīmes. Lasītāji UTF-8 parasti nosaka, pārbaudot baitus.
Ja rakstzīmju kopai jābūt viennozīmīgai, to var skaidri deklarēt ar ECI galveni. Bez tās lasītājs reizēm var kļūdaini uzminēt un parādīt sagrozītas rakstzīmes.