Hitachi

COBOL2002 使用の手引 手引編


27.1.1 コンパイルでのUnicode機能

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

〈この項の構成〉

(1) シフト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に変換します。

(2) 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に変換します。