Kodierungsmodi

Auch genannt: Datenmodi, numerischer Modus, alphanumerischer Modus, Byte-Modus, Kanji-Modus

Definition

Kodierungsmodi sind die Arten, wie ein QR-Code Zeichen in Bits packt. Die vier Hauptmodi sind numerisch, alphanumerisch, Byte und Kanji, und ein einzelner Code kann zwischen ihnen wechseln.

Die vier Hauptmodi

Jeder Modus tauscht Zeichenumfang gegen Dichte. Der numerische Modus verarbeitet nur Ziffern, packt aber drei davon in 10 Bit, während der Byte-Modus jedes beliebige Byte verarbeitet, dafür aber 8 Bit pro Byte braucht.

Der alphanumerische Modus deckt einen Zeichensatz mit 45 Zeichen ab: die Ziffern 0–9, die Großbuchstaben A–Z, das Leerzeichen und die Symbole $ % * + - . / sowie den Doppelpunkt. Kleinbuchstaben gehören nicht dazu. Deshalb kann eine URL in reinen Großbuchstaben einen kleineren Code ergeben als dieselbe URL in Kleinbuchstaben.

  • Numerisch: Ziffern 0–9, 10 Bit pro 3 Ziffern
  • Alphanumerisch: 45 Zeichen, 11 Bit pro 2 Zeichen
  • Byte: beliebiger 8-Bit-Wert, 8 Bit pro Byte
  • Kanji: Shift-JIS-Doppelbyte-Zeichen, je 13 Bit

Modusindikatoren und Segmente

Jede Datenfolge beginnt mit einem 4-Bit-Modusindikator und einer Zeichenanzahl, deren Länge vom Modus und der Version abhängt. Ein Code kann mehrere solcher Segmente enthalten, zum Beispiel numerisch für eine lange Ziffernfolge und Byte für den Rest, was das Ergebnis kleiner machen kann.

Andere 4-Bit-Indikatoren zeigen Funktionen statt Zeichensätze an: ECI zum Deklarieren einer Zeichenkodierung, Structured Append zum Aufteilen von Daten auf mehrere Codes und FNC1 für GS1 und andere branchenspezifische Datenformate. Ein Abschluss aus vier Nullbits beendet die Daten.

  • Numerisch 0001, alphanumerisch 0010, Byte 0100, Kanji 1000
  • ECI 0111, Structured Append 0011
  • FNC1 erste Position 0101, zweite Position 1001
  • Abschluss 0000

Byte-Modus und Zeichensätze

Die Standardauslegung des Byte-Modus in der Norm ist ISO-8859-1 (Latin-1), doch die meisten Generatoren schreiben heute UTF-8, damit Umlaute, andere Schriften und Emojis erhalten bleiben. Lesegeräte erkennen UTF-8 meist durch Prüfen der Bytes.

Wo der Zeichensatz eindeutig sein muss, kann ein ECI-Header ihn ausdrücklich angeben. Ohne einen kann ein Lesegerät gelegentlich falsch raten und verstümmelte Zeichen anzeigen.

Häufig gestellte Fragen

Warum ist mein QR-Code mit Kleinbuchstaben größer?

Kleinbuchstaben gehören nicht zum alphanumerischen Zeichensatz, der Text muss also den Byte-Modus mit 8 Bit pro Zeichen statt 5,5 nutzen. Großbuchstaben, Ziffern und einige Symbole packen sich dichter.

Kann ein QR-Code Emojis oder nichtlateinischen Text speichern?

Ja, im Byte-Modus mit UTF-8, das die meisten Generatoren und Smartphone-Lesegeräte unterstützen. Jedes solche Zeichen belegt mehrere Bytes, die Kapazität sinkt also.

Kann ein QR-Code numerische Daten und Text mischen?

Ja. Die Daten lassen sich in Segmente aufteilen, jedes mit eigenem Modus, und gute Encoder wählen die Aufteilung, die den kleinsten Code ergibt.

Quellen und Normen

Alle Begriffe