Doppel-Byte-Zeichensätze

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:


Natural-Profilparameter SOSI

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.

Angabe des Ausgabeformats

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.

Parameterdefinitionen für DBCS-Unterstützung

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.

Editor-Profil-Optionen

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.

Prüfung der Eingabedaten

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).

Anpassung der Ausgabedaten

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.

Natural Stack-Daten

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

Anwendungsprogrammierschnittstellen für die DBCS-Behandlung

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.

USR4211N - Abrufen von DBCS-Zeichen

Die Anwendungsprogrammierschnittstelle USR4211N kann verwendet werden, um Informationen über die Verfügbarkeit von DBCS-Unterstützung und die definierten SOSI-Zeichen zu erhalten.

USR4213N - String-Behandlung für DBCS-Unterstützung

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.

Alternatives Textmodul NATTXT2U

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.