Vor Kurzem haben wir ziemlich oft über den QR Code und über die Möglichkeiten der Arbeit mit ihm in unseren Softwares geschrieben
Aber haben wir nicht über technische Besonderheiten geschrieben.
Im Byte-Modus werden alle Eingabedaten mit Hilfe von einer Verschlüsselung aus der ECIT-Liste (Extended Channel Interpretation) verschlüsselt. Der Algorithmus prüft jede Verschlüsselung der Reihe nach und legt fest, ob man mit ihrer Hilfe alle Symbole der Eingabedaten verschlüsseln kann. Wenn keine geeignet ist, wird universelle Verschlüsselung „UTF-8“ verwendet.
Alle diesen Aktionen versuchen die Größe des QR Codes zu minimieren, weil im UTF-8-Modus der QR Code maximale Größe hat.
Die Liste der Verschlüsselungen des ECI-Standards, die in unserem Produkt unterstützt werden:
Außerdem, viele mobilen Anwendungen für Lesen von Barcodes unterstützen nur bestimmte Verschlüsselungen, und einige Anwendungen unterstützen nicht den Standard ECI.
Zum Glück, heutzutage, die meisten Geräte können die Verschlüsselung UTF-8 verarbeiten.
Einige Verschlüsselungen in dieser Liste sind ähnlich. Zum Beispiel, ISO-8859-5 und Windows-1251 enthalten die kyrillischen Zeichen. Darum hängt es nur von Eingabedaten ab, welche Verschlüsselung für den Text verwendet wird. Einige Scanner funktionieren nicht mit der Verschlüsselung ISO-8859-5 und fordert nur die Verwendung von Windows-1251.
Zum Beispiel, legen wir die Verschlüsselung
- ein Übersichtartikel über QR Code im Berichtsgenerator Stimulsoft;
- die Möglichkeiten der Anpassung vom QR Code;
- Einbetten von Bildern.
Aber haben wir nicht über technische Besonderheiten geschrieben.
Der allgemeine Algorithmus der Verwendung von Verschlüsselungen
Der QR Code unterstützt verschiedene Modi der Informationsaufzeichnung. Gewöhnlich, der Algorithmus der Auswahl des Modus funktioniert wie folgt: die Eingabedaten werden zuerst analysiert, und wird geprüft, ob sie in einem der kompakten Modi (Numeric, Alphanumeric, Kanji) aufgezeichnet werden können. Wenn es unmöglich ist, wird der Byte-Modus verwendet werden.Im Byte-Modus werden alle Eingabedaten mit Hilfe von einer Verschlüsselung aus der ECIT-Liste (Extended Channel Interpretation) verschlüsselt. Der Algorithmus prüft jede Verschlüsselung der Reihe nach und legt fest, ob man mit ihrer Hilfe alle Symbole der Eingabedaten verschlüsseln kann. Wenn keine geeignet ist, wird universelle Verschlüsselung „UTF-8“ verwendet.
Alle diesen Aktionen versuchen die Größe des QR Codes zu minimieren, weil im UTF-8-Modus der QR Code maximale Größe hat.
Die Liste der Verschlüsselungen des ECI-Standards, die in unserem Produkt unterstützt werden:
- "Cp437";
- "ISO-8859-1";
- "ISO-8859-2";
- "ISO-8859-3";
- "ISO-8859-4";
- "ISO-8859-5";
- "ISO-8859-6";
- "ISO-8859-7";
- "ISO-8859-8";
- "ISO-8859-9";
- "ISO-8859-11";
- "ISO-8859-13";
- "ISO-8859-15";
- "Shift_JIS";
- "Windows-1250";
- "Windows-1251";
- "Windows-1252";
- "Windows-1256";
- "UTF-8".
- "ISO-8859-1";
- "Windows-1250";
- "Windows-1251";
- "Windows-1252";
- "Windows-1256";
- "UTF-8".
Das Problem der falschen Verschlüsselung
Verschiedene Barcode-Lesegeräte können verschiedene Verschlüsselungssätze für Dekodierung von QR Codes unterstützen. Zum Beispiel, die Barcodescanner in einigen Ländern unterstützen nur die in diesem Land am häufigsten verwendeten Verschlüsselungen.Außerdem, viele mobilen Anwendungen für Lesen von Barcodes unterstützen nur bestimmte Verschlüsselungen, und einige Anwendungen unterstützen nicht den Standard ECI.
Zum Glück, heutzutage, die meisten Geräte können die Verschlüsselung UTF-8 verarbeiten.
Einige Verschlüsselungen in dieser Liste sind ähnlich. Zum Beispiel, ISO-8859-5 und Windows-1251 enthalten die kyrillischen Zeichen. Darum hängt es nur von Eingabedaten ab, welche Verschlüsselung für den Text verwendet wird. Einige Scanner funktionieren nicht mit der Verschlüsselung ISO-8859-5 und fordert nur die Verwendung von Windows-1251.
Lösung
Wenn es erforderlich ist, die Verschlüsselung, mit der man die Auswahl starten muss, anzugeben, gibt es in unserer Softwares eine statische EigenschaftStiOptions.Engine.BarcodeQRCodeDefaultByteModeEncoding
.Zum Beispiel, legen wir die Verschlüsselung
Windows_1251
als erste:StiOptions.Engine.BarcodeQRCodeDefaultByteModeEncoding = Stimulsoft.Report.BarCodes.StiQRCodeECIMode.Windows_1251;
Das Problem von „drei zusätzlichen Symbolen am Anfang des Barcodes“
Manchmal klagen die Benutzer über zusätzliche Symbole, die am Anfang eingescannter Information erscheinen. Das ist kein Fehler, sondern die Besonderheit der Verschlüsselung der Information im Barcode. Wenn die Eingabedaten mit UTF-8 verschlüsselt werden, fügen viele Programme (einschließlich Stimulsoft-Tools) ein Präfix BOM (Byte Order Mark) vor die Daten hinzu. Dieses Label ist eine Marke für einige Anwendungen, sie hilft die Verschlüsselung festlegen. Aber nicht alle Lesegeräte können das BOM-Label erkennen, und in diesem Fall werden drei zusätzliche Symbole
im Anfang des Textes erschienen.Lösung
Um diese Situation zu vermeiden und zur Eingabedaten kein BOM-Label hinzuzufügen, stellen Sie die OptionStiOptions.Engine.BarcodeQRCodeAllowUnicodeBOM
auf false.Wenn Sie noch Fragen haben, kontaktieren Sie uns.