Kodningslägen

Kallas också: datalägen, numeriskt läge, alfanumeriskt läge, byteläge, kanjiläge, encoding modes

Definition

Kodningslägen är sätten en QR-kod packar tecken till bitar. De fyra huvudlägena är numeriskt, alfanumeriskt, byte och kanji, och en enda kod kan växla mellan dem.

De fyra huvudlägena

Varje läge byter teckenomfång mot täthet. Numeriskt läge hanterar bara siffror men packar tre av dem i 10 bitar, medan byteläge hanterar vilken byte som helst men lägger 8 bitar på var och en.

Alfanumeriskt läge omfattar en teckenuppsättning på 45 tecken: siffrorna 0–9, versalerna A–Z, mellanslag och symbolerna $ % * + - . / samt kolon. Gemener ingår inte i uppsättningen, och därför kan en webbadress helt i versaler ge en mindre kod än samma adress i gemener.

  • Numeriskt: siffrorna 0–9, 10 bitar per 3 siffror
  • Alfanumeriskt: 45 tecken, 11 bitar per 2 tecken
  • Byte: vilket 8-bitarsvärde som helst, 8 bitar per byte
  • Kanji: tecken i Shift JIS med två byte, 13 bitar vardera

Lägesindikatorer och segment

Varje datasekvens börjar med en lägesindikator på 4 bitar och ett teckenantal, vars längd beror på läget och versionen. En kod kan innehålla flera sådana segment, till exempel numeriskt för en lång rad siffror och byte för resten, vilket kan göra resultatet mindre.

Andra indikatorer på 4 bitar signalerar funktioner snarare än teckenuppsättningar: ECI för att ange en teckenkodning, structured append för att dela data över flera koder och FNC1 för GS1 och andra branschspecifika dataformat. En avslutare på fyra nollbitar avslutar data.

  • Numeriskt 0001, alfanumeriskt 0010, byte 0100, kanji 1000
  • ECI 0111, structured append 0011
  • FNC1 första position 0101, andra position 1001
  • Avslutare 0000

Byteläge och teckenuppsättningar

Standardens förvalda tolkning av byteläge är ISO-8859-1 (Latin-1), men de flesta generatorer skriver i dag UTF-8 så att bokstäver med accenter, andra skriftsystem och emojis klarar sig. Läsare upptäcker oftast UTF-8 genom att undersöka byten.

Där teckenuppsättningen måste vara entydig kan en ECI-rubrik ange den uttryckligen. Utan en sådan kan en läsare ibland gissa fel och visa förvrängda tecken.

Vanliga frågor

Varför blir min QR-kod större med gemener?

Gemener ingår inte i den alfanumeriska uppsättningen, så texten måste använda byteläge med 8 bitar per tecken i stället för 5,5. Versaler, siffror och några symboler packas tätare.

Kan en QR-kod lagra emojis eller icke-latinsk text?

Ja, i byteläge med UTF-8, som de flesta generatorer och telefonläsare stöder. Varje sådant tecken tar flera byte, så kapaciteten minskar.

Kan en QR-kod blanda numeriska data och text?

Ja. Data kan delas upp i segment, vart och ett med eget läge, och bra kodare väljer den uppdelning som ger den minsta koden.

Källor och standarder

Alla begrepp