CODEPAGE は、文字エンコードに依存する COBOL 操作をコンパイル時および実行時に処理するために、EBCDIC コード・ページのコード化文字セット ID (CCSID) を指定する場合に使用します。

CODEPAGE オプションの構文
>>-CODEPAGE(ccsid)---------------------------------------------><
デフォルト: CODEPAGE(1140)
省略形: CP(ccsid)
ccsid は、EBCDIC コード・ページに対する有効な
CCSID を表す整数でなければなりません。
デフォルトの CCSID 1140 は CCSID 37 (EBCDIC Latin-1、USA) と同等ですが、さらにユーロ記号を含んでいます。
ccsid では次のエンコードを指定します。
- COBOL ソース・プログラム内における英数字、国別、および DBCS リテラルのエンコード
- 実行時の英数字および DBCS データ項目のコンテンツのデフォルト・エンコード
- XML エレメントおよび属性名を作成するために XML GENERATE ステートメントが処理する際の、DBCS ユーザー定義語のエンコード
- 文書の受け取りデータ項目が英数字である場合に XML GENERATE ステートメントが作成する XML 文書のデフォルト・エンコード
- 文書が XML PARSE ステートメントによって処理される際に、英数字データ項目の XML 文書で想定されるデフォルト・エンコード
CODEPAGE ccsid は、コード・ページに依存する操作をコンパイル時または実行時に実行し、
デフォルト・コード・ページをオーバーライドする明示的な CCSID が指定されていない場合に使用されます。
このような操作には次のものがあります。
- リテラル値の Unicode への変換
- 移動操作の一部としての英数字データと国別 (Unicode) データ間の変換、比較、または組み込み関数 DISPLAY-OF および NATIONAL-OF
- INVOKE ステートメントなどのオブジェクト指向言語、またはクラス定義およびメソッド定義
- XML 構文解析
- XML 生成
- 実行時の XML 生成の一部としての DBCS 名の処理
- SQLCCSID オプションが有効である場合の SQL ストリング・ホスト変数の処理
- EXEC SQL ステートメントのソース・コードの処理
ただし、COBOL ソース・プログラム内の次の項目のエンコードは、CODEPAGE コンパイラー・オプションの影響を受けません。
- USAGE NATIONAL を持つデータ項目
このような項目は常に、UTF-16BE (ビッグ・エンディアン)、CCSID 1200 でエンコードされます。
- 基本 COBOL 文字セットの文字 (文字に関する下記の関連参照にある該当文字の表を参照)
基本 COBOL 文字、デフォルト通貨記号 ($)、引用符 (")、および小文字ローマ字のエンコードは、EBCDIC コード・ページによって異なりますが、
コンパイラーは常に、EBCDIC コード・ページ 1140 エンコードを使用してこれらの文字を解釈します。
特に、デフォルト通貨記号は (CURRENCY コンパイラー・オプションまたは SPECIAL-NAMES 段落の CURRENCY SIGN 節によって変更されていない限り)
常に値が X'5B' の文字であり、
引用符は常に値が X'7F' の文字になります。
たとえば次に示すように、一部の COBOL 操作では、明示的なエンコードの指定を使用することによって、
CODEPAGE ccsid をオーバーライドすることができます。
- コード・ページを第 2 引数として指定する、DISPLAY-OF および NATIONAL-OF 組み込み関数
- WITH ENCODING 句を指定する XML PARSE ステートメント
- WITH ENCODING 句を指定する XML GENERATE ステートメント
さらに、
CURRENCY コンパイラー・オプション、または
SPECIAL-NAMES 段落の
CURRENCY SIGN 節を使用して次のものをオーバーライドすることができます。
- ソース・プログラム内の数字編集データ項目の PICTURE 文字ストリングで使用されるデフォルト通貨記号
- 実行時に数字編集データ項目のコンテンツで使用される通貨記号
DBCS コード・ページ:
プログラムに次のいずれかの項目が含まれている場合には、
CODEPAGE オプションを使用して、
ccsid を下表に示されている EBCDIC マルチバイト文字セット (MBCS) CCSID のいずれかに設定し、COBOL プログラムをコンパイルします。
- DBCS 文字から成るユーザー定義語
- DBCS (USAGE DISPLAY-1) データ項目
- DBCS リテラル
下表の CCSID はすべて、SBCS と DBCS コード化文字セットの組み合わせを示す混合コード・ページを指定します。
また、これらは DB2 が混合データでサポートする CCSID です。
表 1. EBCDIC マルチバイト・コード化文字セット ID| 各国語 |
MBCS CCSID |
SBCS CCSID コンポーネント |
DBCS CCSID コンポーネント |
| 日本語 (カタカナ-漢字) |
930 |
290 |
300 |
| 日本語 (カタカナ-漢字とユーロ) |
1390 |
8482 |
16684 |
| 日本語 (カタカナ-漢字) |
5026 |
290 |
4396 |
| 日本語 (ローマ字-漢字) |
939 |
1027 |
300 |
| 日本語 (ローマ字-漢字とユーロ) |
1399 |
5123 |
16684 |
| 日本語 (ローマ字-漢字) |
5035 |
1027 |
4396 |
| 韓国語 |
933 |
833 |
834 |
| 韓国語 |
1364 |
13121 |
4930 |
| 中国語 (簡体字) |
935 |
836 |
837 |
| 中国語 (簡体字) |
1388 |
13124 |
4933 |
| 中国語 (繁体字) |
937 |
28709 |
835 |