Für BS2000-Dateien beschreibt das CODED-CHARACTER-SET (CCS) den im BS2000 verwendeten Zeichensatz (siehe Abschnitt „Dateiattribute für Ausgabe von Dateien"). Für die Codierung in SAM-Node-Files werden in der Regel davon abweichende Zeichensätze verwendet. Damit eine Code-Konvertierung für die Bearbeitung und Darstellung von Node-Files im BS2000 möglich ist, wird ab BS2000 OSD/BC V11.0 für Node-Files zusätzlich der auf Net-Storage verwendete Zeichensatz im Dateikatalog eingetragen.
Das Dateiattribut NET-CODED-CHAR-SET (NETCCS) beschreibt den tatsächlichen Zeichensatz, mit dem die Daten eines Node-Files auf dem Net-Storage abgelegt werden. Bei der Darstellung bzw. bei der Bearbeitung der Datei im BS2000 werden EBCDIC-Zeichensätze entsprechend dieser Einstellung umgesetzt. Bei PAM-Node-Files findet keine Konvertierung statt.
Das NETCCS eines Node-File wird beim Erstellen des Katalogeintrags mit CREATE-FILE oder IMPORT-NODE-FILE bestimmt und kann mit MODIFY-FILE-ATTRBUTES geändert werden. Beim CREATE-FILE oder IMPORT-NODE-FILE werden die Zeichensätze CCS und NETCCS standardmäßig aus den Einstellungen im Benutzereintrag ermittelt. Alternativ kann der Benutzer beim CREATE-FILE für CCS und NETCCS abweichende Angaben machen.
Mit der Angabe NET-CODED-CHAR-SET=*NO-CONV oder *ISO wird automatisch ein Zielzeichensatz ermittelt und in den Dateiattributen eingetragen. Das NET-CODED-CHAR-SET kann aber auch wie das CODED-CHARACTER-SET explizit angegeben werden. Die folgende Tabelle gibt einen Überblick.
In den ersten beiden Spalten seien die Einstellungen im Benutzereintrag bzw. die Angabe beim CREATE-FILE vorgegeben, aus denen das resultierende NET-CODED-CHAR-SET im Katalogeintrag des Node-Files ermittelt wird (siehe rechte Spalte):
Benutzereintrag CCS 1) | Benutzereintrag NETCSS 1) | Resultierendes NETCSS im Katalogeintrag des Node-Files |
---|---|---|
EDF03IRV/*NONE | *ISO | ISO88591; bei der Code-Umsetzung wird für CCS EDF041 angenommen |
EDF03DRV | *ISO | ISO88591; bei der Code-Umsetzung wird für CCS EDF04DRV angenommen |
EDF04DRV | *ISO | ISO88591 |
EDF04x | *ISO | ISO8859x mit x=1,2,..F |
ISO8859x | *ISO oder *NO-CONV | ISOx |
UTFx | *ISO oder *NO-CONV | UTFx |
<name_a 1..8> | <name_b 1..8> | <name_b 1..8> |
<name_a 1..8> | *NO-CONV | <name_a 1..8> |
1) Benutzereintrag (SYSSRPM) bzw. Angabe im CREATE-FILE oder MODIFY-FILE-ATTRIBUTES |
Hinweise:
Die Angaben des Benutzers werden nicht validiert. Erst beim OPEN wird XHCS aufgerufen, um die benötigte Code-Tabelle abzurufen. Wenn diese dort nicht verfügbar ist, wird der OPEN abgewiesen.
Das Ändern der Coded-Character-Sets (CCS bzw. NETCCS) bewirkt zunächst nur eine Änderung der entsprechenden Dateiattribute. Erst beim Verarbeiten der Datei (Lesen und Schreiben) kommen die Code-Tabellen beim Übertragen zum/vom Net-Storage und gleichzeitigen Konvertieren der Daten zur Anwendung.
Die benötigten Zeichensätze sind unbedingt vor der Verarbeitung der Datei einzustellen. Nachdem Daten auf Net-Storage geschrieben wurden, sollten die Einstellungen für CCS und NETCCS nicht mehr geändert werden, da im Allgemeinen davon ausgegangen werden muss, dass die Umsetzung der Zeichen bei der weiteren Verarbeitung mit nunmehr geänderten Code-Tabellen zu Inkonsistenzen führen.
Ab BS2000 OSD/BC V11.0 angelegte SAM- und PAM-Node-Files besitzen immer ein definiertes NETCCS. PAM-Node-Files, die vor V11.0 angelegt wurden, werden so behandelt, als ob sie mit der Angabe *NO-CONVERSION erstellt wurden.
Relevant ist das NETCCS nur bei der Verarbeitung von SAM-Node-Files.
Unabhängig von der Einstellung des Dateiattributs wird beim Schreiben des Node-Files zwischen jeden umgesetzten Satz ein zum Zielzeichensatz passendes Zeilenvorschub-Steuerzeichen eingefügt. Dies ist z.B. x'0A' (für ISO88591, ISO646, UTF-8), x'000A' (für UTF-16) oder x'15' (für EBCDIC).
Auch wenn der Anwender als CCS einen 7-Bit Zeichensatz EDF03IRV oder EDF03DRV angegeben hat, wird trotzdem bei der Umsetzung der Zeichen für das Coded-Character-Set ein 8-Bit Zeichensatz verwendet: Bei EDF03IRV wird EDF041 und bei EDF03DRV wird EDF04DRV angenommen.
Wenn für das CCS ein ISO- oder UTF-Zeichensatz angegeben ist, wird keine Konvertierung durchgeführt.
Eine Umsetzung von 7- oder 8-Bit Zeichensätzen in einen Mehrbyte-Zeichensatz (z.B. UTF) ist nicht möglich.