Bereits seit Release 7.2 ist es möglich RPG-Variablen mit einer CCSID zu definieren und somit auch eine Konvertierung zwischen den verschiedenen CCSIDs zu erreichen. Was passiert jedoch mit hardcodierten Werten, für die keine CCSID angegeben werden kann? Gibt es außerdem eine Möglichkeit CCSID-Konvertierungen, die zu Datenverlust führen könnten, festzustellen? Beide Fragen werden in diesem Artikel beantwortet. Jetzt als PDF herunterladen.Herunterladen Hardcodierte Werte, Literale und Compile-Time-data Hardcodierungen, insbesondere die Hardcodierung von Sonderzeichen sollte in Quellen soweit möglich vermieden werden. Nur leider ist das ist das nicht immer möglich. Werden z.B. Regular Expressions verwendet, sind für die Patterns Sonderzeichen erforderlich. Ähnliches gilt, wenn JSON-Daten direkt im RPG-Programm aufbereitet werden. Die Frage ist nun, mit welcher CCSID werden diese Literale verarbeitet? Wird ein Modul erstellt, wird vom Compiler per Default die CCSID der Quelle verwendet, um die Quelle zu lesen und das Objekt zu erstellen. Die CCSID kann jedoch im Compile-Command CRTRPGMOD oder CRTBNDRPG über die Option TGTCCSID geändert werden. Gehen wir davon aus, dass die CCSID der Quelle verwendet wird, z.B. CCSID 273 (= Deutsch). Die Vermutung liegt nahe, dass die hardcodierten Werte in dieser CCSID im Modul und damit im (Service-)Programm hinterlegt und verwendet sind. Leider ist dem nicht so! Wird...
RPG and Unicode – Teil 3: Hardcodierte Werte und Prüfung Datenverlust bei CCSID-Konvertierung
6 Min. Lesedauer

Vorheriger BeitragKI-Vishing: Wenn die Stimme des Chefs zur Cybergefahr wird
Nächster Beitrag IBM i ACS – Die neue Version 1.1.9.9