Rational Developer for System z
COBOL for Windows バージョン 7.5 プログラミング・ガイド


例: 国別データとの間の変換

次の例は、国別 (UTF-16) データ項目との間で変換するための NATIONAL-OF および DISPLAY-OF 組み込み関数ならびに MOVE ステートメントを示しています。 また、複数のコード・ページでエンコードされたストリングに対して操作を行うときの明示的変換の必要性も示しています。

 
* . . .
 01  Data-in-Unicode          pic N(100) usage national.
 01  Data-in-Greek            pic X(100).
 01  other-data-in-US-English pic X(12) value “PRICE in $ =”.
* . . .
     Read Greek-file into Data-in-Greek
     Move function National-of(Data-in-Greek, “IBM-1253”)
         to Data-in-Unicode
* . . . process Data-in-Unicode here . . .
     Move function Display-of(Data-in-Unicode, “IBM-1253”)
         to Data-in-Greek
     Write Greek-record from Data-in-Greek

上記の例は、入力コード・ページが指定されているので正しく機能します。 Data-in-Greek は IBM-1253 (ASCII ギリシャ語) で表されるデータとして変換されます。 しかし、以下のステートメントの場合、項目内の文字すべてが、たまたまギリシャ語と英語の両方のコード・ページで表現が同じであるものでなければ、変換が誤ったものになります。

Move Data-in-Greek to Data-in-Unicode

有効なロケールを en_US.IBM-1252 とした場合、Data-in-Greek は、上記の MOVE ステートメントにより、 コード・ページ IBM-1252 から UTF-16LE への変換に基づいて Unicode に変換されます。この変換は、Data-in-Greek が IBM-1253 にエンコードされるため、期待される結果になりません。

ロケールを el_GR.IBM-1253 に設定した場合 (つまり、プログラムが ASCII データをギリシャ語で処理する場合) は、上記と同じ例を次のようにしてコーディングすることができます。

 
* . . .
 01  Data-in-Unicode pic N(100) usage national.
 01  Data-in-Greek   pic X(100).
* . . .
     Read Greek-file into Data-in-Greek
* . . . process Data-in-Greek here ...
* . . . or do the following (if need to process data in Unicode):
     Move Data-in-Greek to Data-in-Unicode
* . . . process Data-in-Unicode
     Move function Display-of(Data-in-Unicode) to Data-in-Greek
     Write Greek-record from Data-in-Greek

関連タスク
ロケールの設定


ご利用条件 | フィードバック

Copyright IBM Corporation 1996, 2008.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)