COBOL 言語の最も基本的で最小の単位は、文字 です。 基本文字セットには、ラテン・アルファベット、数字、および特殊文字が含まれています。COBOL 言語では、個々の文字が組み合わされて、文字ストリング および分離文字 が形成されます。文字ストリングおよび分離文字を使用して、言語を形成するワード、リテラル、句、文節、ステートメント、および文が形成されます。
ソース・コードの文字ストリングおよび分離文字の形成に使用する基本文字セットは、基本 COBOL 文字セット (表 1) に示されています。
一部の言語エレメントでは、この基本文字セットは ASCII 2 バイト文字セット (DBCS) で拡張されています。
DBCS 文字では、1 文字を表現するために隣接する 2 バイトを使用します。DBCS 文字は、マルチバイト文字とも呼ばれます。ソース・コードに DBCS 文字を含む文字ストリングは、マルチバイト文字ストリングといいます。
マルチバイト文字は、ユーザー定義語の形成に使用できます。
英数字リテラル、コメント行、およびコメント記入項目の内容は、コンピューターのコンパイル時文字セットに含まれる任意の文字および、単一バイト文字とマルチバイト文字を含めることができます。
実行時データには、コンピューターの実行時文字セットに含まれる任意の文字を使用することができます。 コンピューターの実行時文字セットには、英数字、マルチバイト文字、および国別文字を含むことができます。国別文字は UTF-16、Unicode の 16 ビット・エンコード形式で表記されます。
NSYMBOL (NATIONAL) コンパイラー・オプションが有効である場合、開始区切り文字 N“ または N' で示されるリテラルは国別リテラルであり、コンパイル時のコード・ページとして有効な任意の 1 バイト文字またはマルチバイト文字 (またはその両方) を含めることができます。 国別リテラルに含まれる文字は、実行時に国別文字として表記されます。
詳細については、マルチバイト文字から構成されるユーザー定義ワード、 DBCS リテラル、および 国別リテラルを参照してください。
| 文字 | 意味 |
|---|---|
| スペース | |
| + | 正符号 |
| - | 負符号またはハイフン |
| * | アスタリスク |
| / | スラッシュまたは固相線 |
| = | 等号 |
| $ | 通貨符号 |
| , | コンマ |
| ; | セミコロン |
| . | 小数点またはピリオド |
| ” | 引用符 |
| ( | 左括弧 |
| ) | 右括弧 |
| > | より大きい |
| < | より小さい |
| : | コロン |
| ' | アポストロフィ |
| A - Z | 英字 (大文字) |
| a - z | 英字 (小文字) |
| 0 - 9 | 数字 |
文字セット は、情報を表現するために使用される文字、数字、特殊文字、およびその他のエレメントのセットです。 文字セットはコード化表現に依存しません。 コード化文字セット は文字セットのコード化表現で、各文字にはエンコード・スキームでコード・ポイント と呼ばれる数値位置が割り当てられます。基本 COBOL 文字セットは、コード化表現に依存しない文字セットの一例です。コード化文字セットの例としては ASCII および EBCDIC があります。 ASCII または EBCDIC の各バリエーションは特定のコード化文字セットです。
コード化文字セットを表すために コード・ページ という用語を使用します。IBM が定義する各コード・ページは、コード・ページ名 (IBM-1252 など)、およびコード化文字セット ID (CCSID) (1252 など) によって識別されます。
コンパイル時のコード・ページは、ASCII 単一バイト・コード・ページまたは ASCII 2 バイト・コード・ページでなければなりません。コンパイル時のロケールで、特定のコード・ページが示されます。
ソース・プログラム (ユーザー定義語および英数字リテラル、DBCS リテラル、国別リテラルを含む) は、コンパイル時に有効なロケールによって示されるコード・ページでエンコードされます。
実行時に使用されるコード・ページは、データ項目の USAGE 文節、有効なコンパイラー・オプション、および有効なロケール (または環境変数の値) の組み合わせによって決定されます。
CHAR(NATIVE) コンパイラー・オプションが有効な場合、USAGE DISPLAY または USAGE DISPLAY-1 で記述されるデータ項目は、ランタイムのロケールで指定される ASCII コード・ページでエンコードされます。
CHAR(EBCDIC) コンパイラー・オプションが有効な場合、NATIVE 句が項目の USAGE 文節で指定されている場合を除き、USAGE DISPLAY または USAGE DISPLAY-1 で記述されるデータ項目は EBCDIC コード・ページでエンコードされます。NATIVE 句が 指定された場合、使用されるコード・ページはランタイムのロケールで指定される ASCII コード・ページです。
EBCDIC の場合、コード・ページは EBCDIC_CODEPAGE 環境変数が設定されていればそこから決定されます。EBCDIC_CODEPAGE 環境変数が設定されていなければ、現在の実行時ロケールに関連付けられたデフォルトの EBCDIC コード・ページが使用されます。サポートされる各ロケールに関するデフォルトの EBCDIC コード・ページは「COBOL for Windows プログラミング・ガイド」の『サポートされるロケールおよびコード・ページ』で確認できます。
USAGE NATIONAL で記述されたデータ項目および国別リテラルのコード・ページは、UTF-16LE (リトル・エンディアン)、CCSID 1202 です。 国別リテラルのソース・テキスト表現は、コンパイル時のコード・ページから UTF-16LE に実行時に変換されます。
本書で UTF-16 と表記するときは、UTF-16LE を指します。