異なる文字コードのシステム間でデータ抽出・反映する場合,抽出したデータの文字コードを反映側の文字コードに合わせて変換できます。
ここでは,変換できる文字コードについて説明します。この機能の使用方法については,「4.2.3 データ抽出・反映の付加機能」を参照してください。
文字コード変換の対象となる抽出データのデータ型を次に示します。
HiRDB Dataextractorで変換できる文字コードの組み合わせを次に示します。
抽出側の文字コード | 反映側の文字コード | ||||
---|---|---|---|---|---|
SJIS | EUC | UTF-8 | UTF-16BE※ | UTF-16LE※ | |
SJIS | - | ○ | ○ | ○ | ○ |
EUC | ○ | - | ○ | ○ | ○ |
UTF-8 | ○ | ○ | - | ○ | ○ |
UTF-16BE※ | ○ | ○ | ○ | - | ○ |
UTF-16LE※ | ○ | ○ | ○ | ○ | - |
変換できるSJIS文字コードの範囲を次の図に示します。
図3-8 SJIS文字コードの範囲
変換できるEUC文字コードの範囲を次の図に示します。
図3-9 EUC文字コードの範囲
変換できるUTF-8文字コードの範囲を次の表に示します。
表3-8 UTF-8文字コードの範囲
第1バイト | 第2バイト | 第3バイト | 変換規則 |
---|---|---|---|
0x00~0x7F | - | - | 1バイトコードと認識し,対応するコードに変換 |
0x80~0xBF | 0x00~0xFF | - | 0x20に変換 |
- | - | ||
0xC2~0xDE | 0x80~0xFF | - | 2バイトコードと認識し,対応するコードに変換 |
上記以外 | - | 環境変数XTUNDEF,またはXTDATAUNDEFの指定に従って変換 | |
- | - | 未完全コードと認識し,変換しないでスキップ | |
0xDF | 0x80~0xBF | - | 2バイトコードと認識し,対応するコードに変換 |
上記以外 | - | 環境変数XTUNDEF,またはXTDATAUNDEFの指定に従って変換 | |
- | - | 未完全コードと認識し,変換しないでスキップ | |
0xE0 | 0xA0~0xFF | 0x80~0xFF | 3バイトコードと認識し,対応するコードに変換 |
上記以外 | 環境変数XTUNDEF,またはXTDATAUNDEFの指定に従って変換 | ||
- | 未完全コードと認識し,変換しないでスキップ | ||
上記以外 | 0x80~0xFF | 環境変数XTUNDEF,またはXTDATAUNDEFの指定に従って変換 | |
上記以外 | |||
- | 未完全コードと認識し,変換しないでスキップ | ||
- | - | ||
0xE1~0xEE | 0x80~0xFF | 0x80~0xFF | 3バイトコードと認識し,対応するコードに変換 |
上記以外 | 環境変数XTUNDEF,またはXTDATAUNDEFの指定に従って変換 | ||
- | 未完全コードと認識し,変換しないでスキップ | ||
上記以外 | 0x80~0xFF | 環境変数XTUNDEF,またはXTDATAUNDEFの指定に従って変換 | |
- | 未完全コードと認識し,変換しないでスキップ | ||
- | - | ||
0xEF | 0x80~0xBF | 0x80~0xBF | 3バイトコードと認識し,対応するコードに変換 |
上記以外 | 環境変数XTUNDEF,またはXTDATAUNDEFの指定に従って変換 | ||
- | 未完全コードと認識し,変換しないでスキップ | ||
上記以外 | 0x80~0xBF | 環境変数XTUNDEF,またはXTDATAUNDEFの指定に従って変換 | |
上記以外 | |||
- | 未完全コードと認識し,変換しないでスキップ | ||
- | - | ||
0xF0~0xED | - | - |
|
上記以外 | - | - | 環境変数XTUNDEF,またはXTDATAUNDEFの指定に従って変換 |
変換できるUTF-16文字コードの範囲を次の図に示します。なお,UTF-16にはUTF-16BEコード体系(ビッグエンディアン),UTF-16LEコード体系(リトルエンディアン)があります。
図3-10 UTF-16文字コードの範囲
「図3-8 SJIS文字コードの範囲」の(1)~(4)の文字コードは次のように変換します。
「図3-8 SJIS文字コードの範囲」の(8)の文字コードは次のように変換します。
文字コード変換用マッピングテーブルに従い,コード変換します。なお,文字コード変換用マッピングテ-ブルに対応するコードが定義されていない場合は未定義コードとして,環境変数XTUNDEF,またはXTDATAUNDEFに指定した値で変換します。文字コード変換用マッピングテーブルについては,「4.2.3 データ抽出・反映の付加機能」を参照してください。環境変数については,「2.2.3 環境変数の設定」を参照してください。
未定義コードとしてみなされ,環境変数XTUNDEF,またはXTDATAUNDEFに指定した値で変換します。環境変数については,「2.2.3 環境変数の設定」を参照してください。
文字コード変換用マッピングテーブルに従い,コード変換します。なお,文字コード変換用マッピングテ-ブルに対応するコードが定義されていない場合は未定義コードとして,環境変数XTUNDEF,またはXTDATAUNDEFに指定した値で変換します。文字コード変換用マッピングテーブルについては,「4.2.3 データ抽出・反映の付加機能」を参照してください。環境変数については,「2.2.3 環境変数の設定」を参照してください。
未定義コードとしてみなされ,環境変数XTUNDEF,またはXTDATAUNDEFに指定した値で変換します。環境変数については,「2.2.3 環境変数の設定」を参照してください。
文字コード変換用マッピングテーブルに従い,コード変換します。なお,文字コード変換用マッピングテ-ブルに対応するコードが定義されていない場合は未定義コードとして,環境変数XTUNDEF,またはXTDATAUNDEFに指定した値で変換します。文字コード変換用マッピングテーブルについては,「4.2.3 データ抽出・反映の付加機能」を参照してください。環境変数については,「2.2.3 環境変数の設定」を参照してください。
未定義コードとしてみなされ,環境変数XTUNDEF,またはXTDATAUNDEFに指定した値で変換します。環境変数については,「2.2.3 環境変数の設定」を参照してください。
「図3-9 EUC文字コードの範囲」の(1)~(4)の文字コードは次のように変換します。
「図3-9 EUC文字コードの範囲」の(5)の文字コードは次のように変換します。
未定義コードとしてみなされ,環境変数XTUNDEF,またはXTDATAUNDEFに指定した値で変換します。環境変数については,「2.2.3 環境変数の設定」を参照してください。
文字コード変換用マッピングテーブルに従い,コード変換します。なお,文字コード変換用マッピングテ-ブルに対応するコードが定義されていない場合は未定義コードとして,環境変数XTUNDEF,またはXTDATAUNDEFに指定した値で変換します。文字コード変換用マッピングテーブルについては,「4.2.3 データ抽出・反映の付加機能」を参照してください。環境変数については,「2.2.3 環境変数の設定」を参照してください。
未定義コードとしてみなされ,環境変数XTUNDEF,またはXTDATAUNDEFに指定した値で変換します。環境変数については,「2.2.3 環境変数の設定」を参照してください。
文字コード変換用マッピングテーブルに従い,コード変換します。なお,文字コード変換用マッピングテ-ブルに対応するコードが定義されていない場合は未定義コードとして,環境変数XTUNDEF,またはXTDATAUNDEFに指定した値で変換します。文字コード変換用マッピングテーブルについては,「4.2.3 データ抽出・反映の付加機能」を参照してください。環境変数については,「2.2.3 環境変数の設定」を参照してください。
未定義コードとしてみなされ,環境変数XTUNDEF,またはXTDATAUNDEFに指定した値で変換します。環境変数については,「2.2.3 環境変数の設定」を参照してください。
文字コード変換用マッピングテーブルに従い,コード変換します。なお,文字コード変換用マッピングテ-ブルに対応するコードが定義されていない場合は未定義コードとして,環境変数XTUNDEF,またはXTDATAUNDEFに指定した値で変換します。文字コード変換用マッピングテーブルについては,「4.2.3 データ抽出・反映の付加機能」を参照してください。環境変数については,「2.2.3 環境変数の設定」を参照してください。
未定義コードとしてみなされ,環境変数XTUNDEF,またはXTDATAUNDEFに指定した値で変換します。環境変数については,「2.2.3 環境変数の設定」を参照してください。
UTF-8の4バイト以上の文字コードを検知した場合,環境変数XTUTF8UCS4CHKの指定に従って動作します。環境変数については,「2.2.3 環境変数の設定」を参照してください。
UTF-8の外字コードは,UTF-8のデコード(UTF-8からUnicodeへ変換)規則と,UTF-16のエンコード(UnicodeからUTF-16へ変換)規則に従って,UTF-16の外字コードに変換します。
未定義コードとしてみなされ,環境変数XTUNDEF,またはXTDATAUNDEFに指定した値で変換します。環境変数については,「2.2.3 環境変数の設定」を参照してください。
文字コード変換用マッピングテーブルに従いコード変換します。なお,文字コード変換用マッピングテーブルに対応するコードが定義されていない場合は未定義コードとして,環境変数XTUNDEF,またはXTDATAUNDEFに指定した値で変換します。文字コード変換用マッピングテーブルについては,「4.2.3 データ抽出・反映の付加機能」を参照してください。環境変数については,「2.2.3 環境変数の設定」を参照してください。
環境変数XTUNDEF,またはXTDATAUNDEFに指定した値で変換します。
文字コード変換用マッピングテーブルに従い,コード変換します。なお,文字コード変換用マッピングテ-ブルに対応するコードが定義されていない場合は未定義コードとして,環境変数XTUNDEF,またはXTDATAUNDEFに指定した値で変換します。文字コード変換用マッピングテーブルについては,「4.2.3 データ抽出・反映の付加機能」を参照してください。環境変数については,「2.2.3 環境変数の設定」を参照してください。
UTF-16の外字コードは,UTF-16のデコード(UTF-16からUnicodeへ変換)規則と,UTF-8のエンコード(UnicodeからUTF-8へ変換)規則に従って,UTF-16の外字コードに変換します。
対応するUTF-8コードに変換します。
ここでは,エンコード,およびデコードによる文字コード変換後の値の求め方について説明します。
UnicodeからUTF-8への変換後の値は,次の手順で求めます。
表3-9 UnicodeとUTF-8の関係
Unicode (16進数) | UTF-8 (2進数) | |||||
---|---|---|---|---|---|---|
1バイト目 | 2バイト目 | 3バイト目 | 4バイト目 | 5バイト目 | 6バイト目 | |
00000000~0000007f | 0vvvvvvv | - | - | - | - | - |
00000080~000007ff | 110vvvvv | 10vvvvvv | - | - | - | - |
00000800~0000ffff | 1110vvvv | 10vvvvvv | 10vvvvvv | - | - | - |
00010000~001fffff | 11110vvv | 10vvvvvv | 10vvvvvv | 10vvvvvv | - | - |
00200000~03ffffff | 111110vv | 10vvvvvv | 10vvvvvv | 10vvvvvv | 10vvvvvv | - |
04000000~7fffffff | 1111110v | 10vvvvvv | 10vvvvvv | 10vvvvvv | 10vvvvvv | 10vvvvvv |
UTF-8からUnicodeへの変換後の値は,UTF-8のエンコードと逆の手順で求めます。
UnicodeからUTF-16への変換後の値の求め方は,Unicodeの値の範囲によって異なります。
(0000)16~(FFFF)16の範囲のUnicodeは,変換後もそのままUnicodeの値(2バイト)となります。なお,(D800)16~(DFFF)16の範囲はサロゲート用で,単独のUnicode文字コードとしては使用できないため除きます。
(10000)16以上のUnicodeは,変換後,サロゲートペア(4バイト)となります。(10000)16以上のUnicodeからUTF-16への変換後の値は,次の手順で求めます。
UTF-16からUnicodeへの変換後の値の求め方は,UTF-16の値の範囲によって異なります。
上位サロゲートが次に示す範囲のUTF-16は,変換後もそのままUTF-16の値が使われます。
上位サロゲートが(D800)16~(DBFF)16で,下位サロゲートが(DC00)16~(DFFF)16の範囲のUTF-16の場合,Unicodeへの変換後の値は,次の手順で求めます。