View Full Version : QR Codes und Sonderzeichen
camouflage
07-11-16, 17:39
Ich schlag mich hier mit QR-Codes rum und zum grossen Teil rennt es auch. Allerdings hab ich da meine Mühe mit den Sonderzeichen. Der Print-Output ist richtig, nur wenn ich den QR-Code wieder scanne, werden die Sonderzeichen ersatzlos gestrichen.
Am Reader kann's nicht liegen, der liest andere QR-Codes mit öüä etc. korrekt ein.
Für die Hilfe dank ich euch.
Ach ja: V7R1, Prtf mit *afpds/RPLUNPRT-*no gewandelt
Dann ist da die Frage, mit welcher CHRID die Sonderzeichen im QR gedruckt werden müssen.
Aber hier gibts ggf. Hilfe:
http://goqr.me/de/qr-codes/qr-code-zeichensatz-iso-8859-utf-8-unicode.html
D.h., dass du die Daten als CCSID 1208 für UTF-8 umsetzen und wahrscheinlich als TRNSPY-Feld deklarieren musst.
camouflage
08-11-16, 12:53
Hallo Baldur,
Dachte ich versuch es mal mit UCS-2, nur fall ich mit dem Keyword "BARCODE" dann auf die Nase, da das System diesen in der Kombi nicht akzeptiert.
Verlangt ist für den QR Code ISO 8859-1/Latin-1.
Steh da echt auf dem Schlauch.
Leider musst du hier selber aktiv werden da BARCODE nur SBCS, also einfache Zeichenfelder akzeptiert.
Da aber die BARCODE-Funktion von Hosttransform native umgesetzt wird, ist das nicht so einfach, UTF-8 auszugeben, da die Zeichenkette ja in EBCDIC übergeben werden muss.
Laut Doku kann ggf. halt noch Unicode, GRAPHIC CCSID(13488), angegeben werden.
Ggf. erfolgt dann die UTF-8-Umsetzung automatisch.
camouflage
08-11-16, 13:44
Danke Baldur,
da es ja noch nicht so eilt, kann ich getrost abwarten bis der Releasewechsel zu 7.2 /3/4 durch ist. Nämlich wird ab 7.2 UTF-8 sowie QRCode vom BS unterstützt. Bis dahin, mach ich halt intern mit den Daten rein Tisch.
Dass QR com BS unterstützt wird hilft hier nicht weiter. Du musst dich trotzdem um die Zeichenkonvertierung kümmern. Ich habe mir das selbst erstellt, damit ich die volle Kontrolle über alle Sonderzeichen für den jeweiligen Anwendungsfall habe. In einem Fall war es notwendig, den Zeichensatz 1252 (Windows) zu unterstützen, damit am PC die Sonderzeichen gelesen werden konnten.
Viel Erfolg
Mit dem Schlüsselwort BARCODE übergibst du ganz normal deine Zeichen in EBCDIC, wobei hier die CHRID der PRTF zu verwenden ist. Um die Datenumsetzung in ASCII (1252, 1251, ...) kümmert sich a) der Drucker oder b) Hosttransform.
Selbst wenn ich z.B. Zebradrucker ansteuere gebe ich die Daten in EBCDIC an.
Wenn du ohne Hosttransform mit den nativen Druckersequenzen direkt am Drucker arbeitest, dann kann es schon sein, dass du per TRNSPY-Feld native ASCII-Daten an den Drucker sendest.
Ansonsten sendest du grundsetzlich EBCDIC.