付録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
2ASCII/JISローマ字21-7ex-sjis-cp932※2
3半角かたかなa1-df
4JIS X 0208-1990(第1バイト)81-9f e0-ec
5JIS X 0208-1990(第2バイト)40-7e 80-fc
6ユーザ定義文字(第1バイト)f0-f9ユーザ外字※3
7ユーザ定義文字(第2バイト)40-7e 80-fc
8NEC選定IBM拡張漢字(第1バイト)ed-eex-sjis-cp932※2
9NEC選定IBM拡張漢字(第2バイト)40-7e 80-fc
10IBM拡張漢字(第1バイト)fa-fc
11IBM拡張漢字(第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
2ASCII/JISローマ字21-7Ex-eucjp-open-19970715​-ms※2
3JIS X 0208-1990(第1バイト)A1-FE
4JIS 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備考
11バイト形式00-7f   00000000​-0000007​f 
22バイト形式c2-df80-bf  00000080​-000007ff 
33バイト形式e0-ef80-bf80-bf 00000800​-0000ffff 
44バイト形式f0-f480-bf80-bf80-bf00010000​-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のコード範囲※1ISO-10646-UCS-4のコード範囲※1※2備考
1サロゲートペア以外のコード範囲※20000-d7ff00000000​-0000d7ff 
2e000-ffff0000e000-0000ffff 
3上位のサロゲートのコード範囲※3d800-dbff00010000​-0010ffff 
4下位のサロゲートのコード範囲※3dc00-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 
2CJK統一文字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~f0fce000~e0bb
f140~f17e,f180~f1fce0bc~e177
f240~f27e,f280~f2fce178~e233
f340~f37e,f380~f3fce234~e2ef
f440~f47e,f480~f4fce2f0~e3ab
f540~f57e,f580~f5fce3ac~e467
f640~f67e,f680~f6fce468~e523
f740~f77e,f780~f7fce524~e5df
f840~f87e,f880~f8fce5e0~e69b
f940~f97e,f980~f9fce69c~e757