COBOL2002 使用の手引 手引編

[目次][用語][索引][前へ][次へ]

27.1 Unicode機能の概要

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

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

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

OS 使用できる動作環境 環境変数LANGの設定値
HP-UX(IPF)
AIX(32)
AIX(64)
シフトJIS環境 付録A.2 シフトJISの場合」を参照してください。
Linux(x86)
Linux(x64)
UTF-8環境 付録A.4 Unicodeの場合」を参照してください。
<この節の構成>
(1) コンパイルでのUnicode機能
(2) 実行でのUnicode機能
(3) デバッグでの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連携機能※1とCosminexus連携機能※2でUnicodeデータを使用できます。
    注※1
    HP-UX(IPF),AIX(32),AIX(64),Linux(x86),Linux(x64)で有効です。
    注※2
    AIX(64),Linux(x64)で有効です。
  2. ファイル入出力機能でUnicodeデータの読み書きができます。

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

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