Dieses Kapitel ist für asiatische Länder relevant, die Doppel-Byte-Zeichensätze (Double Byte Character Sets, DBCS) - im Gegensatz zu Ein-Byte-Zeichensätzen (Single Byte Character Sets, SBCS) - verwenden. Es beschreibt alle in Natural implementierten Funktionen zur Unterstützung von DBCS-Terminals und -Druckern.
Folgende Themen werden behandelt:
In alphanumerischen Feldern mit gemischten SBCS- und DBCS-Zeichen werden die
DBCS-Zeichenketten von den SBCS-Zeichenketten durch Shift-Codes mit der Bezeichnung
SO (Shift-Out) und SI (Shift-In) getrennt. Der
Natural-Profilparameter SOSI wird verwendet, um die Werte der in der
aktuellen Umgebung verwendeten Shift-In- und Shift-Out-Codes an Natural zu übergeben.
Es wird dringend empfohlen, intern die IBM-Zeichen X'0E' und
X'0F' zu verwenden. Mit dieser Technik können alle Anwendungen und Daten
auf kompatible Weise gehandhabt werden, was bedeutet, dass ein Netzwerk, das verschiedene
Großrechnertypen unterstützt, dennoch dieselben Natural-Anwendungen verwenden und
dieselben Daten verarbeiten kann.
Weitere Informationen siehe Profilparameter SOSI in der
Parameter-Referenz-Dokumentation.
Der Natural-Session-Parameter PM=D wird zur Definition von reinen DBCS-Feldern verwendet. Ein
reines DBCS-Feld darf nur gültige DBCS-Zeichen enthalten. Shift-Out/Shift-In-Zeichen
(SO/SI) sind in einem solchen Feld nicht erlaubt. Um ein Feld
mit dem Session-Parameter PM=D anzuzeigen, wird für IBM-Terminals das
Bildschirmattribut X'43F8' hinzugefügt.
Die folgenden Parameter müssen bei der Einrichtung von Natural für die Unterstützung von Doppel-Byte-Zeichensätze angegeben werden:
| Parameter | Erläuterung |
|---|---|
TS=ON
|
Wenn keine lateinischen Kleinbuchstaben verfügbar sind, wandelt dieser
Parameter alle Natural-Systemausgaben anhand der durch das Makro
NTTABL im Modul NATCONFG definierten Umsetzungstabelle
um.
|
SOSI=(0E,0E,0F,0F,1) |
Legt die DBCS Shift-Out- und Shift-In-Werte für IBM-Hardware fest. |
LC=ON
|
Setzt nicht alle Eingabedaten in Großbuchstaben um, was wiederum mögliche DBCS-Eingabedaten zerstören würde. |
Zusätzlich zu TS=ON werden weitere Parameter für die Umsetzung von Meldungen
in Großbuchstaben von mehreren Natural-Komponenten zur Verfügung gestellt. Ausführliche
Informationen finden Sie unter Weitere Parameter für die Umsetzung in Großbuchstaben
in der Beschreibung des Profilparameters TS.
Wenn Sie in einem der Natural-Editoren DBCS- oder Katakana-Zeichen in halber Breite eingeben wollen, sollten Sie im Editor-Profil unter Allgemeine Standardwerte - General Defaults die folgenden allgemeinen Standardoptionen für den Editor einstellen, um zu vermeiden, dass Zeichenkonstanten oder Feldnamen, die DBCS- oder Katakana-Zeichen in halber Breite enthalten, ungewollt in Großbuchstaben umgewandelt werden:
| Option | Wert | Erläuterung |
|---|---|---|
| Editing in Lower Case | Y |
Kleinbuchstaben im Quellcode werden nicht automatisch in
Großbuchstaben umgewandelt.
Diese Option ist erforderlich, wenn Sie DBCS oder Katakana-Zeichen mit halber Breite verwenden. |
| Dynamic Conversion of Lower Case | N |
Jeder Quellcode bleibt so, wie Sie ihn eingeben.
Diese Option ist erforderlich, wenn Sie Katakana-Zeichen mit halber Breite verwenden. |
Ausführliche Informationen zu den allgemeinen Standardoptionen des Editors finden Sie unter Allgemeine Standardwerte - General Defaults. Ausführliche Informationen über das Editorprofil finden Sie unter Editor-Profil in der Editoren-Dokumentation.
Damit Sie diese Optionen nicht für jeden Benutzer ändern müssen, können Sie das Standardprofil für Ihre Installation mit Hilfe der User-Exit-Routine USR0070P ändern, die auch DBCS unterstützt. Siehe USR0070P - User Exit für Editor-Profile im Kapitel Natural konfigurieren.
Wenn der Session-Parameter PM=D für ein Feld gesetzt ist, wird geprüft, ob die
Eingabedaten
eine gerade Anzahl an Bytes enthalten,
nur gültige DBCS-Zeichen enthalten,
keine Shift-Out/Shift-In-Zeichen (SO/SI) enthalten.
Da die Erkennung von Nicht-DBCS-Zeichen ICU erfordert, wird diese Prüfung nicht durchgeführt, wenn ICU nicht
verfügbar ist (d.h. wenn der Profilparameter CFICU=OFF gesetzt wurde).
Wenn ein Fenster zur Benutzerinteraktion angezeigt werden soll, kann das Fenster bereits
angezeigte DBCS-Zeichen überlagern, oder das Fenster kann selbst DBCS-Zeichen enthalten,
die aufgrund der Fenstergröße abgeschnitten sind. Eine Überlagerung kann auch auftreten,
wenn bei einem INPUT-Statement
die Option NO ERASE
verwendet wird. Um eine Fehlerhaftigkeit des Bildschirminhalts im Falle einer solchen
Überlagerung zu verhindern, werden die folgenden Aktionen durchgeführt, um die
Ausgabedaten gegebenenfalls anzupassen:
Wenn der Session-Parameter PM=D für ein Feld gesetzt ist, wird ein verwaistes Byte
(d.h. ein einzelnes Byte, das infolge einer teilweisen Überlagerung eines
DBCS-Zeichens am Anfang oder Ende der anzuzeigenden Daten übrigbleibt) durch ein
Attribut ersetzt. Dadurch wird sichergestellt, dass nur gültige DBCS-Zeichen angezeigt
werden.
Wenn der Profilparameter SOSI gesetzt ist, wird der Feldinhalt eines
alphanumerischen Feldes, für das PM=D nicht angegeben ist, auf Shift-Out/Shift-In-Zeichen
(SO/SI) untersucht. Wird ein Shift-Out-Zeichen
(SO) gefunden, für das das korrelierende Shift-In-Zeichen
(SI) fehlt, wird entweder das letzte Zeichen der Ausgabedaten durch ein
Shift-In-Zeichen (SI) ersetzt oder die letzten beiden Zeichen werden
durch ein Shift-In-Zeichen (SI) gefolgt von einem Leerzeichen ersetzt.
Wird ein Shift-In-Zeichen (SI) gefunden, für das das korrelierende
Shift-Out-Zeichen (SO) fehlt, wird entweder das erste Zeichen der
Ausgabedaten durch ein Shift-out-Zeichen (SO) ersetzt oder die beiden
führenden Zeichen werden durch ein Leerzeichen gefolgt von einem Shift-Out-Zeichen
(SO) ersetzt. Dadurch wird sichergestellt, dass DBCS-Zeichen
ordnungsgemäß von Shift-Out-/Shift-In-Zeichen (SO/SI)
umschlossen werden.
Um eine unbeabsichtigte Interpretation von DBCS-Zeichen als Begrenzungs- oder
Steuerzeichen zu vermeiden, sollte die Option FORMATTED des Statements STACK verwendet werden, wenn die Daten, die auf dem Natural
Stack abgelegt werden sollen, DBCS-Zeichen enthalten.
Weitere Informationen:
Statement STACK in der
Statements-Dokumentation
Natural Stack im Leitfaden zur Programmierung
Die folgenden Anwendungsprogrammierschnittstellen (API) sind zur Unterstützung der DBCS-Behandlung verfügbar:
Diese APIs sind als Unterprogramme in der Natural Library SYSEXT enthalten.
Ausführliche Informationen zur Verwendung einer API finden Sie in dem zugehörigen
Textobjekt (USRxxxxT). Siehe auch Dienstprogramm SYSEXT.
Die Anwendungsprogrammierschnittstelle USR4211N kann verwendet werden, um Informationen über die Verfügbarkeit von DBCS-Unterstützung und die definierten SOSI-Zeichen zu erhalten.
Mit der Anwendungsprogrammierschnittstelle USR4213N können die folgenden Funktionen ausgeführt werden:
Konvertierung einer normalen lateinischen Zeichenkette in die entsprechende DBCS-Zeichenkette.
Konvertierung einer DBCS-Zeichenkette, die nur lateinische Daten enthält, in eine Ein-Byte-Zeichenkette.
Hinzufügen der aktuellen Shift-Codes am Anfang und am Ende einer Zeichenkette.
Entfernen von einleitenden und abschließenden Shift-Codes aus einer Zeichenkette.
Die letzten beiden Funktionen können verwendet werden, um entweder native DBCS-Zeichenketten zu erzeugen oder Mixed-Mode-Daten aus nativen DBCS-Zeichenketten zu generieren.
Der alternative Textmodul NATTXT2U enthält bestimmte Schlüsselwörter für die englische
Sprache in Großbuchstaben, die im Textmodul NATTXT2 in gemischter
Großschreibung enthalten sind.
NATTXT2U sollte in Umgebungen, in denen die Kleinbuchstaben-Codepoints
H'81' bis H'A9' zur Darstellung nationaler Zeichen verwendet
werden, anstelle von NATTXT2 mit dem Natural Nukleus verlinkt werden.