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.