Im Unicode-Modus kann jede Arbeitsdatei einen eigenen Zeichensatz besitzen.
Der Zeichensatz einer leeren und nur einer leeren Arbeitsdatei kann auch *NONE
sein. Dies ist die Einstellung nach dem Start des EDT und nach dem vollständigen Löschen einer Arbeitsdatei mit @DROP oder @DELETE (Format 2).
Ist die Einstellung *NONE
, kann der Zeichensatz entweder implizit festgelegt werden dadurch, dass Daten in die Arbeitsdatei eingefügt werden oder explizit durch eine @CODENAME-Anweisung. Ist der Zeichensatz für eine Arbeitsdatei einmal eingestellt, werden alle Daten, die in diese Arbeitsdatei gelangen, auch in diesen Zeichensatz konvertiert.
Werden Daten in eine leere Arbeitsdatei mit Zeichensatz *NONE
eingefügt, so erhält die Arbeitsdatei implizit den Zeichensatz dieser Daten entsprechend der Quelle aus der sie stammen. Wie der EDT den Zeichensatz bestimmt, kann der Tabelle im Abschnitt Zeichenfolgen entnommen werden.
Hat die Arbeitsdatei bereits einen festgelegten Zeichensatz (also nicht *NONE
), wird beim Einfügen von Daten in diese Arbeitsdatei eine Konvertierung dieser Daten aus ihrem Quell-Zeichensatz durchgeführt. Unabhängig davon, ob die Arbeitsdatei leer ist oder nicht, werden die Daten beim Einfügen in den Zeichensatz der Arbeitsdatei konvertiert.
Wenn sich Daten in der Arbeitsdatei befinden, bewirkt ein Umschalten des Zeichensatzes mit der @CODENAME-Anweisung, dass diese Daten in den neuen Zeichensatz konvertiert werden.
Mit @CODENAME ...,GLOBAL kann der Zeichensatz aller Arbeitsdateien mit einer Anweisung auf den gleichen Wert eingestellt werden.
Für Migrationszwecke bietet die @CODENAME-Anweisung noch eine zusätzliche Leistung. Mit @CODENAME ...,FORCE=YES wird der Zeichensatz der Arbeitsdatei umetikettiert. Die Arbeitsdatei erhält dann einen neuen Zeichensatz, die in ihr enthaltenen Daten werden aber nicht konvertiert, sondern bleiben unverändert. Dies kann verwendet werden, um fehlerhaft etikettierte Dateien zu korrigieren. Der FORCE
-Operand wirkt nur bei 7-Bit- und 8-Bit-Zeichensätzen.