このドキュメントは、ダブルバイト文字セット(DBCS)を使用するアジア諸国のみを対象としています。 DBCS 端末およびプリンタをサポートするために Natural に実装されているすべての機能について説明します。以下のトピックについて説明します。
SBCS 文字と DBCS 文字が混在する英数字フィールドでは、DBCS 文字列と SBCS 文字列は SO(シフトアウト)および SI(シフトイン)と呼ばれるシフトコードで分離されます。 Natural プロファイルパラメータ SOSI は、現在の環境で使用されているシフトインコードおよびシフトアウトコードの値を Natural に渡すために使用されます。
内部的には IBM 文字 X'0E'
および X'0F'
を使用することを強くお勧めします。 この手法を使用すると、すべてのアプリケーションとデータを互換性のある方法で処理でき、ネットワークでサポートしているさまざまなメインフレームタイプで同じ Natural アプリケーションを使用し、同じデータを処理することができます。
このパラメータの詳細については、SOSI
を参照してください。
Natural セッションパラメータ PM=D
を使用して、DBCS 専用フィールドを定義します。 DBCS 専用フィールドで使用できるのは有効な DBCS 文字のみで、シフトアウト/シフトイン文字(SO/SI)は使用できません。 セッションパラメータ PM=D
が指定されているフィールドを表示するために、IBM 端末には画面属性 X'43F8'
が追加されます。富士通端末の場合は、必要なシフトアウト/シフトイン文字(SO/SI)でフィールド内容が囲まれます。
ダブルバイト文字セットをサポートするには、Natural のセットアップで以下のパラメータを指定する必要があります。
パラメータ | 説明 |
---|---|
TS=ON |
ラテン文字の小文字を使用できない場合、すべての Natural システム出力は NATCONFG モジュールの NTTABL マクロで定義された変換テーブルを使用して変換されます。
|
SOSI=(0E,0E,0F,0F,1) |
IBM ハードウェアの DBCS シフトアウトおよびシフトインの値を定義します。 |
SOSI=(28,28,29,29,0) |
富士通ハードウェアの DBCS シフトアウトおよびシフトインの値を定義します。 |
LC=ON |
いずれの入力データも大文字に変換されないため、DBCS 入力データが再度破壊される可能性があります。 |
TS=ON
の他に、メッセージを大文字に変換するためのパラメータが複数の Natural コンポーネントによって提供されています。 詳細については、「TS - システムライブラリでプログラムからの出力を変換
」で、大文字に変換するための他のパラメータに関する説明を参照してください。
DBCS または半角カタカナ文字を Natural エディタのいずれかに入力する場合、エディタプロファイルに以下のエディタの全般的なデフォルトオプションを設定して、DBCS または半角カタカナ文字を含む文字定数またはフィールド名が意図せず大文字に変換されるのを回避する必要があります。
オプション | 値 | 説明 |
---|---|---|
Editing in Lower Case | Y |
ソースコード中の小文字は自動的に大文字に変換されません。 このオプションは、DBCS または半角カタカナ文字を使用する場合に必要です。 |
Dynamic Conversion of Lower Case | N |
ソースコードは入力されたときのままです。 このオプションは、半角カタカナ文字を使用する場合に必要です。 |
エディタの全般的なデフォルトオプションの詳細については、「全般的なデフォルト設定」を参照してください。 エディタプロファイルの詳細については、『エディタ』ドキュメントの「エディタプロファイル」を参照してください。 すべてのユーザーがこれらのオプションを変更しなくてもすむように、ユーザー出口ルーチン USR0070P
によって、インストールのデフォルトプロファイルを変更できます。このユーザー出口ルーチンでは DBCS もサポートされます。「Natural の構成」セクションの「USR0070P - エディタプロファイルのユーザー出口」を参照してください。
フィールドにセッションパラメータ PM=D
が設定されている場合は、入力データについて以下の点がチェックされます。
偶数のバイト数を含んでいる。
有効な DBCS 文字のみを含んでいる。
シフトアウト/シフトイン文字(SO/SI)を含んでいない。
非 DBCS 文字の検出には ICU が必要なので、ICU を使用できない場合(つまり、プロファイルパラメータ CFICU=OFF
が設定されている場合)は、このチェックは行われません。
ユーザー操作のためにウィンドウが表示される場合に、すでに表示されている DBCS 文字にウィンドウがオーバーレイしたり、ウィンドウサイズに合わせて切り捨てられた DBCS 文字がウィンドウ自体に含まれたりすることがあります。 オーバーレイは、INPUT
ステートメントで NO ERASE
オプションを使用している場合も発生することがあります。 オーバーレイなどの場合に画面が乱れないようにするためには、以下の対処法を実行し、必要に応じて出力データを調整します。
フィールドにセッションパラメータ PM=D
が設定されている場合は、孤立バイト(DBCS 文字の部分的なオーバーレイの結果として表示される、データの先頭または末尾に残された 1 バイト)は属性によって置き換えられます。この操作によって、確実に、有効な DBCS 文字のみが表示されます。
プロファイルパラメータ SOSI
が設定されている場合は、PM=D
が指定されていない英数文字フィールドの内容がシフトアウト/シフトイン文字(SO/SI)についてチェックされます。対応するシフトイン文字(SI)がないシフトアウト文字(SO)が見つかった場合は、出力データの最後の文字がシフトイン文字(SI)に置き換えられるか、最後の
2 文字がシフトイン文字(SI)とそれに続く空白に置き換えられます。対応するシフトアウト文字(SO)がないシフトイン文字(SI)が見つかった場合は、出力データの最初の文字がシフトアウト文字(SO)に置き換えられるか、最初の 2 文字が空白とそれに続くシフトアウト文字(SO)に置き換えられます。この操作によって、確実に、DBCS
文字がシフトアウト/シフトイン文字(SO/SI)で正しく囲まれます。
DBCS 文字が意図せずデリミタ文字または制御文字として解釈されるのを避けるには、Natural スタックに配置されるデータに DBCS 文字が含まれる場合は、STACK
ステートメントの FORMATTED
オプションを使用する必要があります。
STACK
ステートメントの詳細については、『ステートメント』ドキュメントを参照してください。
Natural スタックの詳細については、『プログラミングガイド』を参照してください。
DBCS 処理をサポートするために、以下のユーザーアプリケーションプログラミングインターフェイス(API)を使用できます。
これらの API は、Natural ライブラリ SYSEXT
にサブプログラムとして含まれています。 API の使用方法の詳細情報は、対応するテキストメンバ(USRxxxxT
)に含まれています。 『ユーティリティ』ドキュメントの「SYSEXT ユーティリティ- Natural アプリケーションプログラミングインターフェイス」も参照してください。
アプリケーションプログラミングインターフェイス USR4211N
を使用すると、DBCS サポートの可用性および定義されている SOSI 文字に関する情報を取得できます。
アプリケーションプログラミングインターフェイス USR4213N
を使用すると、以下の機能を実行できます。
通常のラテン文字列を対応する DBCS 文字列に変換します。
ラテン文字データのみを含む DBCS 文字列をシングルバイト文字列に変換します。
文字列の先頭と末尾に現在のシフトコードを追加します。
文字列から先頭と末尾のシフトコードを削除します。
最後の 2 つの機能は、ネイティブ DBCS 文字列の生成またはネイティブ DBCS 文字列以外の混在モードデータの生成に使用できます。