- Unterstuetzung von UNICODE-Objekten in CFS |
Ab der BS2000-Version 7.0 werden Unicode-Objekte unterstützt. | |
Unter Unicode-Objekten verstehen wir Dateien/PLAM-Bibliothekselemente, deren Datensätze in einem der folgenden CCS (Coded Character Sets) codiert sind: UTF16 (= UNICODE), UTF8, UTFE. Die Codes der alphanumerischen Zeichen (A - Z, a -z, 0 - 9) sind in UTF16 und UTF8 grundsätzlich verschieden vom EBCDIC-Code. Unter UTFE besitzen zumindest die alphanumerischen Zeichen die gleichen Codes wie in EBCDIC. | |
Im Display-/Modify-Modus von CFS werden die Inhalte von Unicode-Objekten in lesbarer Form dargestellt. Voraussetzung hierfür ist BS2000 >= 7.0 (XHCS Version >= 2.0), sowie der zur Codierung passende CCS-Eintrag im Systemkatalog bzw. im Inhaltsverzeichnis der PLAM-Bibliothek. Siehe hierzu auch die CFS User Option CCS. | |
DA UNI,EDF0xxx |
Erkennt CFS eine Unicode-Datei am zugehörigen CCS-Eintrag, so wird intern das Kommando DA UNI,EDF04F ausgeführt. Der Benutzer kann jedoch selbst ein anderes Kommando DA UNI,EDF04xx eingeben, falls z.B. das Euro-Zeichen nicht an der erwarteten hexadezimalen EBCDIC-Position steht. | |
Das Kommando DA UNI,EDF04xx bewirkt folgendes: | |
a) | Läuft CFS unter einer 8-bit Emulation, so werden alle Unicode-Zeichen, die im 8-bit Character Set EDF04xx darstellbar sind, zur Bildschirmanzeige in diesen Code umgesetzt. | |
b) | Läuft CFS unter einer 7-bit Emulation, so werden alle Unicode-Zeichen, die im 7-bit Character Set EDF03IRV darstellbar sind, zur Bildschirmanzeige in diesen Code umgesetzt. | |
Alle Unicode-Zeichen, die im gewählten Code nicht definiert sind, werden als Schmierzeichen (X'08') dargestellt. | |
Im Hexadezimal-Modus von CFS (Display-Kommando H) werden die Daten der Unicode-Datei in der EDFxxx-Codierung angezeigt. Damit können auch im Hexa-Modus keine Unicode-Zeichen eingegeben werden, die außerhalb der EBCDIC Codevarianten liegen. | |
Um ein Unicode-Objekt im native-Modus, d.h. in der originalen, nicht umgesetzten Codierung anzuschauen, ist das CFS-Kommando NDA einzugeben. Bei UTF16-Dateien wird in diesem Fall jedes Zeichen als 2-Byte Folge dargestellt. Die gewohnten alphanumerischen Zeichen sind dann für den Benutzer nicht mehr erkennbar. Im Hexadezimalmodus können jedoch, falls bekannt, die Codierungen von fremdsprachlichen Zeichen (z.B. Kyrillisch) modifiziert werden. | |
DA CODE,UTFxxTOEBC |
Mit diesem Kommando können die alphanumerischen Zeichen von Unicode codierten Dateien auch ohne korrekten CCS-Eintrag im Katalog, bzw. in älteren BS2000-Versionen < 7.0 in einer lesbaren Form am Bildschirm angezeigt werden. Eine Änderung der Dateninhalte ist hierbei jedoch nicht möglich. | |
Falls eine Datei keinen, bzw. einen falschen CCS-Eintrag im Katalog besitzt, kann man mit | |
DA CODE,UTF16TOEBCD | |
DA CODE UTF8TOEBCD | |
den tatsächlich für die Codierung der Daten verwendeten CCS testen und der Datei evtl. mit /MOD-FILE-ATTR datei,C-C-S=code zugewiesen. | |
Es ist zu beachten, daß bei der UTF16 Codierung alphanumerische Zeichen als 2-Byte mit führendem Leerzeichen dargestellt werden. | |
Inhalt von Dateien/Bibliothekselementen umcodieren | |
ONXCONV ['str1'= 'str2', ] CCS=ccsneu [, FCCS=ccsalt] |
Die Sätze der durch den Action-Code X gekennzeichneten Dateien bzw. PLAM-Bibliothekselemente werden gemäß dem angegebenen Coded Character Set Namen umcodiert. | |
CCS=ccsneu | |
im System gültiger Coded Character Set Name. | ||
Der Inhalt der Datenobjekte wird mittels XHCS auf den angegebenen CCS umcodiert. | ||
Falls eine Datei im Katalog bereits mit einen CCS ccsx verknüpft ist, wird angenommen, daß die Sätze in diesem CCS vorliegen und es erfolgt eine Umcodierung in der Form ccsx --> ccsneu | ||
FCCS=ccsalt | |
Falls die Datei im Katalog mit keinem CCS verknüpft ist, wird mit FCCS angegeben, in welcher Codierung die Eingabesätze vorliegen. In diesem Fall erfolgt die Umcodierung in der Form ccsalt --> ccsneu | ||
Dateiinhalte suchen und Treffersätze wegschreiben | |
ONXFIND 'str' [= W datei] |
Die Suchzeichenfolge str wird unabhängig von der Codierung auch in UTFxx Dateien gefunden. Dies wird erreicht, indem die UTF codierten Datensätze vor der Suche ohne Datenverlust in den EBCDIC-kompatiblen Zeichensatz UTFE umgesetzt werden. | |
Treffersätze werden in diesem Code in die Trefferdatei geschrieben. Dies hat zur Folge, daß die alphanumerischen Inhalte im EBCDIC-Umfeld gelesen und ohne Verlust geändert werden können. | |
Rewrite-Kommando für geänderte Trefferdateien | |
REWR datei | Beim Zurückschreiben von Treffersätzen in die Originaldateien/Bibliothekselemente wird zuerst geprüft, ob das originale Datenobjekt in einem Unicode-Zeichensatz (UTFxx) vorliegt. Ist dies der Fall, so werden die entsprechenden Treffersätze von UTFE nach UTFxxx umgewandelt und erst danach in das Datenobjekt zurückgeschrieben. |
Action-Code EDT / Kommando EDT | |
Falls unter BS2000 7.0 der neue EDT V17.0 eingesetzt ist, kann dieser von CFS mit der erweiterten Funktionalität benutzt werden. Diese beinhaltet: | |
a) | Dateien mit Satzlängen > 256 Bytes werden automatisch ohne Datenverlust eingelesen und können mit UPD bzw. Write-Kommando zurückgeschrieben werden. | |
b) | beliebige Dateien im Unicode Format können bearbeitet werden. | |
Standardmäßig verwendet CFS auch unter BS2000 7.0 den EDT im kompatiblen 16.6-Modus mit allen gegebenen Einschränkungen. Es existiert jedoch ein Kommando zum Einstellen des Verarbeitungsmodus des EDT: | |
EDTMODE COMP | UNI |
Vor dem ersten Aufruf des Kommandos / Action-Codes EDT wird festgelegt, ob dieser im kompatiblen Format oder mit der erweiterten Unicode-Funktionalität aufgerufen wird. Der durch das Kommando- bzw. Action-Code benutzte EDT kann somit in unterschiedlichen Modi betrieben werden. Nachdem EDT geladen wurde, ist eine erneute Änderung des Modus für die jeweilige Aufrufart (Kommando/Action-Code) nicht mehr möglich. | |
Der EDT-Aufrufmodus kann auch im Modul CFSMAIN global für alle Benutzer eingestellt werden. Das Kommando EDTMODE übersteuert diese globale Voreinstellung. | |