COBOL2002 使用の手引 手引編


27.1 Unicode機能の概要

ここでは,コンパイル,実行,およびデバッグでのUnicode機能の概要について説明します。

Unicode機能を使用できる環境を次に示します。

表27‒1 Unicode機能を使用できる環境

OS

使用できる動作環境

環境変数LANGの設定値

AIX

シフトJIS環境

付録A.2 シフトJISの場合」を参照してください。

Linux

UTF-8環境

付録A.4 Unicodeの場合」を参照してください。

〈この節の構成〉

(1) コンパイルでのUnicode機能

シフトJISで記述されたCOBOLソースプログラムを,-UniObjGenオプションを指定してコンパイルすることで,コード系がUnicodeのオブジェクトを生成します。これによって,Unicodeデータ同士の転記または比較ができます。コンパイルでのUnicode機能を次に示します。

(a) シフトJIS環境下の場合

図27‒1 コンパイルでのUnicode機能(シフトJIS環境下)

[図データ]

  1. シフトJISで記述されたCOBOLソースプログラム,登録集原文を入力し,-UniObjGenオプションを指定しないでコンパイルすると,シフトJIS環境で動作するオブジェクトが生成されます。

  2. シフトJISで記述されたCOBOLソースプログラム,登録集原文を入力し,-UniObjGenオプションを指定してコンパイルすると,COBOLのUnicode機能を使用する環境で動作するオブジェクトが生成されます。コンパイル時に出力されるコンパイルメッセージ,コンパイルリストはシフトJISで出力されます。

  3. Unicodeで記述されたCOBOLソースプログラムは,コンパイルできません。コンパイルした場合,動作は保証しません。

  4. COBOL2002コンパイラは,COBOLソースプログラム上に記述された英数字文字定数をUTF-8に,日本語文字定数をUTF-16に変換します。

(b) UTF-8環境下の場合

図27‒2 コンパイルでのUnicode機能(UTF-8環境下)

[図データ]

  1. シフトJISで記述されたCOBOLソースプログラム,登録集原文を入力し,-UniObjGenオプションを指定しないでコンパイルすると,コンパイルエラーとなります。

  2. シフトJISで記述されたCOBOLソースプログラム,登録集原文を入力し,-UniObjGenオプションを指定してコンパイルすると,COBOLのUnicode機能を使用する環境で動作するオブジェクトが生成されます。コンパイル時に出力されるコンパイルメッセージはUTF-8,コンパイルリストはシフトJISで出力されます。

  3. Unicodeで記述されたCOBOLソースプログラムは,コンパイルできません。コンパイルした場合,動作は保証しません。

  4. COBOL2002コンパイラは,COBOLソースプログラム上に記述された英数字文字定数をUTF-8に,日本語文字定数をUTF-16に変換します。

(2) 実行でのUnicode機能

プログラム実行時に実行時環境変数CBLLANGにUNICODEが指定されている場合,コード系がUnicodeとみなして実行します。プログラム実行時のUnicode機能について次に示します。

図27‒3 プログラム実行時のUnicode機能

[図データ]

  1. XML連携機能とCosminexus連携機能でUnicodeデータを使用できます。

    注※

    AIX(64),Linux(x64)で有効です。

  2. ファイル入出力機能でUnicodeデータの読み書きができます。

(3) デバッグでのUnicode機能

テストデバッガでプログラムをデバッグすると,Unicodeデータに対して次の操作ができます。詳細は,マニュアル「COBOL2002 使用の手引 操作編」を参照してください。