Extended Channel Interpretation (ECI)

Imenuje se tudi: ECI, oznaka ECI, deklaracija nabora znakov

Opredelitev

Extended Channel Interpretation (ECI) je ubežna koda znotraj črtne kode, ki razglasi, kako naj se preberejo naslednji bajti, na primer ECI 26 za UTF-8. Številni bralniki jo prezrejo in raje ugibajo.

Pregledala ekipa AriaQR ·

Extended Channel Interpretation (ECI)

Kaj naredi ECI

ECI bralniku pove, kateri nabor znakov ali razlaga podatkov velja za bajte, ki sledijo. Brez njega mora bralnik predpostaviti privzeto vrednost ali ugibati iz samih bajtov.

ECI ni značilen samo za kode QR. Shemo je določilo združenje AIM, panožno združenje črtnih kod, podpirajo pa jo tudi Data Matrix, koda Aztec, PDF417, MaxiCode in druge simbologije.

Kako je kodiran v kodi QR

Segment ECI se začne s kazalnikom načina 0111, ki mu sledi številka oznake ECI iz enega do treh bajtov. Razlaga ostane v veljavi do konca podatkov ali dokler je ne spremeni drug ECI.

  • ECI 3: ISO-8859-1 (Latin-1)
  • ECI 20: Shift JIS
  • ECI 26: UTF-8
  • Oznake segajo od 0 do 999999

Podpora v praksi

Podpora za ECI je neenakomerna. Industrijski in dokumentni skenerji ga pogosto upoštevajo, številne aplikacije za kamero v telefonih pa ga prezrejo in UTF-8 zaznajo s pregledom, kar deluje za večino sodobne vsebine.

Nekateri starejši bralniki glave ECI ne pričakujejo in lahko prikažejo zablodele znake ali vsebine ne razčlenijo. Za vsakdanje URL-je in navadno besedilo večina generatorjev ECI izpusti in se zanaša na zaznavo UTF-8.

Pogosta vprašanja

Ali potrebujem ECI za besedilo UTF-8 v kodi QR?

Običajno ne. Večina bralnikov v telefonih UTF-8 prepozna samodejno, ECI pa lahko zmede nekaj starejših bralnikov. Najbolj koristen je, kadar je treba podatke razlagati natančno, na primer v industrijskih sistemih.

Zakaj moja koda QR ob skeniranju prikaže čudne znake?

Bralnik je morda za podatke v bajtnem načinu napačno uganil nabor znakov. Razglasitev UTF-8 z ECI 26 ali preizkus z drugim bralnikom lahko pomaga ugotoviti vzrok.

Viri in standardi

Vsi pojmi