COBOL2002 XML連携機能ガイド

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

付録E.1 使用できる文字エンコーディング

XML連携機能で処理するXMLドキュメントでは,次に示す文字エンコーディングを使用してください。

文字エンコーディングの指定を省略した場合はUTF-8を仮定します。

<この項の構成>
(1) シフトJISでのコード範囲とUnicodeへの変換表
(2) 日本語EUCでのコード範囲とUnicodeへの変換表
(3) UCS系エンコードでの利用可能なコード範囲
(4) UnicodeからシフトJISへの変換
(5) Unicodeから日本語EUCへの変換
(6) 使用できる外字コード

(1) シフトJISでのコード範囲とUnicodeへの変換表

シフトJISコードのXMLドキュメントを解析する場合は,シフトJISコードからUnicodeへ変換して解析したあと,値をCOBOLデータ項目に入力するときに,UnicodeからシフトJISコードへ変換します。

XML不正文字は,Unicodeに変換したあとにチェックされ,エラーとして通知されます。XML不正文字については,「付録E.2(1) XML標準仕様での文字の範囲」を参照してください。シフトJISコードからUnicodeへの変換表を表E-1に示します。

表E-1 シフトJISでのコード範囲とUnicodeへの変換表

項番 説明 コード範囲(16進数) 備考
1 制御コード 00-20 ※1
2 ASCII/JISローマ字 21-7e x-sjis-cp932※2
3 半角かたかな a1-df
4 JIS X 0208-1990(第1バイト) 81-9f e0-ec
5 JIS X 0208-1990(第2バイト) 40-7e 80-fc
6 ユーザ定義文字(第1バイト) f0-f9 ユーザ外字※3
7 ユーザ定義文字(第2バイト) 40-7e 80-fc
8 NEC選定IBM拡張漢字(第1バイト) ed-ee x-sjis-cp932※2
9 NEC選定IBM拡張漢字(第2バイト) 40-7e 80-fc
10 IBM拡張漢字(第1バイト) fa-fc
11 IBM拡張漢字(第2バイト) 40-7e 80-fc
12 項番1〜11以外の範囲 未定義※4

注※1
制御コード0x00〜0x20は,Unicodeの制御コード0x0000〜0x0020に変換されます。

注※2
変換規則x-sjis-cp932については,「付録E.2(2) 文字コード変換表」を参照してください。

注※3
シフトJISのユーザ定義文字の領域は,Unicodeの外字領域(Private Use Area)に変換されます。使用できる外字の範囲については,「付録E.1(6) 使用できる外字コード」を参照してください。

注※4
Unicodeの空白(0x0020)や中点(0x30fb)など適当な文字に置き換わります。XMLドキュメントの入力動作は保証しません。

(2) 日本語EUCでのコード範囲とUnicodeへの変換表

日本語EUCのXMLドキュメントを解析する場合は,日本語EUCからUnicodeへ変換して解析したあと,値をCOBOLデータ項目に入力するときに,Unicodeから日本語EUCへ変換します。

日本語EUCでは,半角かな文字に半角英数字2文字分の領域が必要です。このため,XMLドキュメントの入出力で半角かな文字を使用する場合は,COBOLプログラム中で長さの扱いに注意してください。

XML不正文字は,Unicodeに変換したあとにチェックされ,エラーとして通知されます。XML不正文字については,「付録E.2(1) XML標準仕様での文字の範囲」を参照してください。日本語EUCからUnicodeへの変換表を表E-2に示します。

表E-2 日本語EUCでのコード範囲とUnicodeへの変換表

項番 説明 コード範囲(16進数) 備考
1 制御コード 00-20 ※1
2 ASCII/JISローマ字 21-7E x-eucjp-open-19970715-ms※2
3 JIS X 0208-1990(第1バイト) A1-FE
4 JIS X 0208-1990(第2バイト) A1-FE
5 半角かたかな(第1バイト) 8E
6 半角かたかな(第2バイト) A1-DF
7 項番1〜6以外の範囲 未定義※3

注※1
制御コード0x00〜0x20は,Unicodeの制御コード0x0000〜0x0020に変換されます。

注※2
変換規則x-eucjp-open-19970715-msについては,「付録E.2(2) 文字コード変換表」を参照してください。

注※3
JIS X 0212補助漢字の範囲では変換は保証しません。それ以外の範囲については,Unicodeの空白文字(0x0020),中点(0x30FB)など適当な文字に置き換えられます。
XMLドキュメントの入出力動作は保証しません。

(3) UCS系エンコードでの利用可能なコード範囲

表E-3 UTF-8でのコード範囲

項番 説明 UTF-8のコード範囲※1(1バイト目) UTF-8のコード範囲※1(2バイト目) UTF-8のコード範囲※1(3バイト目) UTF-8のコード範囲※1(4バイト目) ISO-10646-UCS-4のコード範囲※1 備考
1 1バイト形式 00-7f       00000000-0000007f  
2 2バイト形式 c2-df 80-bf     00000080-000007ff  
3 3バイト形式 e0-ef 80-bf 80-bf   00000800-0000ffff  
4 4バイト形式 f0-f4 80-bf 80-bf 80-bf 00010000-0010ffff※2  
5 項番1〜4以外の範囲 未定義※3

注※1
コード範囲は16進数で表しています。

注※2
UTF-8の4バイト形式はISO-10646-UCS-4で表現する0x00010000〜0x001fffffの範囲ですが,UTF-16のサロゲートペア(surrogate pairs)で表す範囲の上限値(0x0010ffff)より大きい範囲については未定義です。
また,JIS X0213の第3,4水準の文字は使用できません。

注※3
未定義の範囲については,空白(0x0020)など適当な文字に置き換わります。XMLドキュメントの入力動作は保証しません。

表E-4 UTF-16でのコード範囲

項番 説明 UTF-16のコード範囲※1 ISO-10646-UCS-4のコード範囲※1※2 備考
1 サロゲートペア以外のコード範囲※2 0000-d7ff 00000000-0000d7ff  
2 e000-ffff 0000e000-0000ffff  
3 上位のサロゲートのコード範囲※3 d800-dbff 00010000-0010ffff  
4 下位のサロゲートのコード範囲※3 dc00-dfff  
5 項番1〜4以外の範囲 未定義※4

注※1
コード範囲は16進数で表しています。

注※2
XML連携機能ではUCS-2範囲でサポートしています。
ただし,JIS X0213の第3,4水準の文字は使用できません。

注※3
XML連携機能では使用できません。

注※4
未定義の範囲については,空白(0x0020)など適当な文字に置き換わります。 XMLドキュメントの入出力動作は保証しません。

表E-5 ISO-10646-UCS-2でのコード範囲

項番 説明 コード範囲※1 備考
1 アルファベット,かな,記号など 0000-4dff  
2 CJK統一文字 4e00-9fff  
3 ユーザ定義外字領域 e000-f8ff  
4 全角アルファベット,半角かな文字 f900-fffd  
5 項番1〜4以外の範囲 未定義※2

注※1
コード範囲は16進数で表しています。

注※2
未定義の範囲については,空白(0x0020)など適当な文字に置き換わります。XMLドキュメントの入出力動作は保証しません。

(4) UnicodeからシフトJISへの変換

UnicodeからシフトJISへの変換は,シフトJISのコード範囲で,x-sjis-cp932の逆変換となります。ただし,シフトJISからUnicodeへの変換で,同じ字形を表す複数のコードから,Unicodeの一つのコードへ対応づけられているものについては,対応するコードの一つが逆変換に使用されるため,完全な逆変換とはなりません。

(5) Unicodeから日本語EUCへの変換

Unicodeから日本語EUCへの変換は,日本語EUCのコード範囲で,x-eucjp-open-19970715-msの逆変換となります。ただし,日本語EUCからUnicodeへの変換で,同じ字形を表す複数のコードから,Unicodeの一つのコードへ対応づけられているものについては,対応するコードの一つが逆変換に使用されるため,完全な逆変換とはなりません。

(6) 使用できる外字コード

XML連携機能,およびXML連携機能の実行ライブラリで使用できる外字コードを,次に示します。なお,外字コードは,要素の値だけに使用できます。

シフトJIS,Unicode以外の外字コードは使用できません。

表E-6 使用できる外字コード

使用できるシフトJISでの外字コード(16進数) Unicodeのユーザエリアでの文字コード(16進数)
f040〜f07e,f080〜f0fc e000〜e0bb
f140〜f17e,f180〜f1fc e0bc〜e177
f240〜f27e,f280〜f2fc e178〜e233
f340〜f37e,f380〜f3fc e234〜e2ef
f440〜f47e,f480〜f4fc e2f0〜e3ab
f540〜f57e,f580〜f5fc e3ac〜e467
f640〜f67e,f680〜f6fc e468〜e523
f740〜f77e,f780〜f7fc e524〜e5df
f840〜f87e,f880〜f8fc e5e0〜e69b
f940〜f97e,f980〜f9fc e69c〜e757