COBOL2002 XML連携機能ガイド


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

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

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

〈この項の構成〉

(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