Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 プログラミング・ガイド


Unicode および言語文字のエンコード

Enterprise COBOL では、Unicode の基本的な実行時サポートを提供しています。 Unicode では、全世界で一般的に使用されている 文字や記号をすべて網羅する数万文字の取り扱いが可能となります。

文字セットは、定義された文字のセットですが、コード化表現と関連してはいません。 コード化文字セット (本書ではコード・ページ とも呼んでいます) は、セットの文字をそのコード化表現に関係付ける 明確な規則セットです。 各コード・ページには名前があり、文字セットを表現するための記号を設定した一種のテーブルとなっています。それぞれの記号は、固有のビット・パターン、すなわちコード・ポイント を持ちます。 コード・ページにはそれぞれ、コード化文字セット ID (CCSID) があり、1 から 65,536 までの値をとります。

Unicode には、Unicode Transformation Format (UTF) と呼ばれる幾つかのエンコード・スキーム (UTF-8、UTF-16、および UTF-32 など) があります。 Enterprise COBOL では、国別リテラルおよび USAGE NATIONAL を持つデータ項目の表現として、ビッグ・エンディアン・フォーマットの UTF-16 (CCSID 1200) を使用します。

UTF-8 は、ASCII インバリアント文字 a から z、A から Z、0 から 9、および特殊文字 (' @ , . + - = / * ( ) など) を、ASCII で表現される場合と同様に表します。 UTF-16 は、これらの文字を NX'00nn'として表します (ここで、X'nn' は ASCII での文字表現です)。

例えば、ストリング「ABC」は、UTF-16 では NX'004100420043' として表されます。 UTF-8 では、「ABC」X'414243' として表されます。

1 つ以上のエンコード・ユニット を使用して、コード化文字セットから文字を表します。UTF-16 の場合、エンコード・ユニットは 2 バイトのストレージを使用します。任意の EBCDIC、ASCII、または EUC コード・ページで定義された文字はいずれも、国別データ表現に変換されたときに 1 つの UTF-16 エンコード・ユニットで表現されます。

クロスプラットフォームに関する考慮事項: Enterprise COBOL および COBOL for AIX® は、国別データでビッグ・エンディアン・フォーマットの UTF-16 をサポートします。 COBOL for Windows® は、国別データでリトル・エンディアン・フォーマットの UTF-16 (UTF-16LE) をサポートします。UTF-16LE 表現でエンコードされた Unicode データを別のプラットフォームから Enterprise COBOL へ移植する場合、そのデータをビッグ・エンディアン・フォーマットの UTF-16 に変換してデータを国別データとして処理する必要があります。

関連タスク
国別 (Unicode) 表現との間の変換

関連参照
国別データのストレージ  
文字セットとコード・ページ (Enterprise COBOL 言語解説書)


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)