Die Verarbeitung alphanumerischer Werte mit unterschiedlichen CCSIDs stellt in RPG eine besondere Herausforderung dar – insbesondere, wenn UTF-8-Daten ins Spiel kommen. Wie bereits in den vorherigen Artikeln thematisiert, erfolgt in RPG-Programmen zur Laufzeit standardmäßig eine automatische Konvertierung aller single-byte alphanumerischen Daten in die Job-CCSID. Bei der Konvertierung von UTF-8-Daten in die Job-CCSID kann dies zu Datenverlust führen. In diesem Artikel werden wir uns mit native I/O bzw. der Verarbeitung von Tabellen mit alphanumerischen Spalten, die mit unterschiedlichen CCSIDs (z.B. UTF-8) definiert sind, beschäftigen. Jetzt als PDF herunterladen.Herunterladen Standardmäßig werden in RPG alle Werte in Single-Byte-Variablen und Konstanten zur Laufzeit in die aktuelle Job-CCSID konvertiert – es sei denn, die Variablen sind explizit mit einer eigenen CCSID deklariert und für die Konstanten-Werte wurde in den Control-Options (H-Bestimmungen) das Schlüsselwort CCSID(*EXACT) angegeben. Wie sieht das nun für Tabellen mit UTF-8 Spalten aus, die mit native I/O verarbeitet werden? Aus der CCSID-Cross-Reference-Liste in der Kompilierungs-Liste ist ersichtlich, dass beim Befüllen der Ein/Ausgabe-Datenstrukturen bei alphanumerischen Single-Byte-Spalten eine Konvertierung in die Job-CCSID erfolgt. Variablen können mit einer CCSID definiert werden, aber was ist mit den I/O-Buffern und wie können wir z.B. UTF-8-Werte mit Native I/O verarbeiten? Werden Daten über native I/O verarbeitet, werden die Dateien...
Quelle: MQ-Illustrations, Adobe Stock Photos
Vorheriger BeitragNeue Redbooks und Redpaper von IBM
Nächster Beitrag IFS Services 03 -Lesen und Schreiben