次の例は、国別 (UTF-16) データ項目との間での変換に、NATIONAL-OF および DISPLAY-OF 組み込み関数ならびに MOVE ステートメントを使用する方法を示しています。 また、複数のコード・ページでエンコードされたストリングに対して操作を行うときの明示的変換の必要性も示しています。
CBL CODEPAGE(00037) * . . . 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, 00875) to Data-in-Unicode * . . . process Data-in-Unicode here . . . Move function Display-of(Data-in-Unicode, 00875) to Data-in-Greek Write Greek-record from Data-in-Greek
上記の例は、入力コード・ページが指定されているので正しく機能します。Data-in-Greek は、CCSID 00875 (ギリシャ語) で表されるデータとして変換されます。 しかし、以下のステートメントの場合、 項目内の文字すべてが、たまたまギリシャ語と英語の両方のコード・ページで表現が同じであるものでなければ、変換が誤ったものになります。
Move Data-in-Greek to Data-in-Unicode
上記の MOVE ステートメントは、CCSID 00037 (米国英語) から UTF-16 への変換に基づいて、Data-in-Greek を Unicode 表現に変換します。 Data-in-Greek は CCSID 00875 でエンコードされるので、この変換では期待される結果が得られません。
CODEPAGE コンパイラー・オプションを正しく CCSID 00875 に設定することができた場合 (つまり、プログラムの残りの部分も EBCDIC データをギリシャ語で処理した場合) は、上記と同じ例を次のようにしてコーディングすることができます。
CBL CODEPAGE(00875)
* . . .
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