4.3.5 文字コードの対応の設計
文字コードの対応の設計方法について説明します。
- 〈この項の構成〉
-
(1) 文字コードの種類
抽出側DBと反映側DBの文字コードの種類を次に示します。
-
抽出側DBがメインフレームの場合の,抽出側DBの文字コードです。
EBCDIC/KEIS,EBCDIK/KEISには,次の4種類があります。
-
EBCDIC/KEIS78
-
EBCDIK/KEIS78
-
EBCDIC/KEIS83
-
EBCDIK/KEIS83
このマニュアルでは,以降この4種類のコードをEBCDIK/KEISと表記します。
-
-
メインフレームの1バイトコードです。
-
抽出側DB又は反映側DBがHiRDBの場合の文字コードです。
HiRDBのpdsetupコマンドでシフトJIS漢字コードを指定している場合に使われる文字コードです。
抽出側Datareplicatorでは抽出システム定義のdblocaleオペランドで,反映側Datareplicatorでは反映システム定義のdblocaleオペランドで,対応するHiRDBの文字コードを指定します。
-
抽出側DB又は反映側DBがHiRDBの場合の文字コードです。
HiRDBのpdsetupコマンドでEUC日本語漢字コードを指定している場合に使われる文字コードです。
抽出側Datareplicatorでは抽出システム定義のdblocaleオペランドで,反映側Datareplicatorでは反映システム定義のdblocaleオペランドで,対応するHiRDBの文字コードを指定します。
-
UCS2は,Unicode UCS2文字セットです。Datareplicatorでは,UTF-8へのエンコードルールだけを意識し,コードと文字のマッピングについては意識していません。使用できるUnicodeの範囲はUCS2のBMP面(基本多言語面)で,UTF-8へのエンコードはUCS2をUTF-8形式にエンコードしたものです。
-
抽出側DB又は反映側DBがHiRDBの場合の文字コードです。HiRDBのpdsetupコマンドでUTF-8を指定している場合に使われる文字コードです。UTF-8は,Unicodeの文字を表現する文字エンコーディングスキームの一つで8ビット単位の情報の組み合わせで文字を表記します。抽出側Datareplicatorでは抽出システム定義のdblocaleオペランド,反映側Datareplicatorでは反映システム定義のdblocaleオペランドで,対応するHiRDBの文字コードを指定します。
(2) 文字コードの変換
抽出側DBと反映側DBとの文字コードが異なっている場合,Datareplicatorは文字コードを定義に従って変換します。抽出側DBと反映側DBで同じ文字コードを使っている場合は,文字コードを変換する必要はありません。
(a) 反映側Datareplicatorでの文字コードの変換
反映側Datareplicatorでは,抽出側DBの文字コードを反映側DBの文字コードに対応させて変換します。反映側DBの文字コードは,反映システム定義のdblocaleオペランドで指定します。
抽出側DBがメインフレーム側DBの場合,抽出側DBの文字コードのEBCDIK/KEISの種類は,反映環境定義のebcdic_typeオペランドで指定します。
抽出側DBと反映側DBの文字コードの対応を次の表に示します。
抽出側DBの文字コード |
反映側DBの文字コード |
||||
---|---|---|---|---|---|
EBCDIK/KEIS※1 |
EBCDIK |
JIS8/シフトJIS |
EUC※2 |
UTF-8 |
|
EBCDIK/KEIS※1 |
− |
− |
○ |
○ |
○ |
EBCDIK |
− |
− |
○ |
− |
− |
JIS8/シフトJIS |
○ |
○ |
− |
○ |
○ |
EUC※2 |
○ |
− |
○ |
− |
○ |
UTF-8 |
○ |
− |
○ |
○ |
− |
- (凡例)
-
○:抽出側DBの文字コードを反映側DBの文字コードに変換できます。
−:文字コードを変換する必要はありません。
- 注※1
-
EBCDIK/KEISを扱えるのはXDM/DSとVOS3 Database Datareplicatorだけです。
- 注※2
-
コードセット0〜2以外の動作は保証しません。
(3) 文字コード変換の規則
Datareplicatorでの文字コードの変換規則について説明します。
- 文字コードの変換方法
-
文字コード変換用マッピングテーブルを使って文字コードを変換します。
- 外字の変換方法の定義
-
外字の変換方法は,hdsccnvedtコマンドで文字コード変換用マッピングテーブルを編集して定義します。
(4) EBCDIK/KEISからJIS8/シフトJISへの文字コードの変換規則
(a) 1バイトコード
対応するシフトJISの文字コードに変換されます。
(b) 2バイトコード(標準文字コード)
-
対応するシフトJISの文字コードに変換されます。
-
機能キャラクタ( (0A42)16,(0A41)16)は削除して詰められます。これによって余りができた場合は,空白文字( (20)16)に変換されます。
-
機能キャラクタで囲まれた文字列中の (00)16 〜 (40)16は,対応するシフトJISの文字コードに変換されます。
-
最後の文字が2バイトコードの先頭バイトの場合は,空白文字( (20)16)に変換されます。
(c) 2バイトコード(外字)
ユーザが作成する文字コード変換用マッピングテーブルに従って変換されます。
未定義の外字,及び文字コード変換用マッピングテーブルを作成していない場合は,反映環境定義のundefcode_cnvオペランドの指定値に従って,空白文字に変換されます。
(d) 空白文字
シフトコード中の空白文字は,変換されます。空白文字の変換規則(EBCDIK/KEISからJIS8/シフトJIS)を次の表に示します。
EBCDIK/KEISの文字コード |
JIS8/シフトJISの文字コード |
---|---|
全角の空白文字 (A1A1)16 |
全角の空白文字 (8140)16 |
二つの連続した半角の空白文字 (40)16 (40)16 |
反映環境定義のshiftspace_cnvオペランドの指定値に従って,全角の空白文字又は二つの連続した半角の空白文字に変換します。 |
半角の空白文字 (40)16 |
半角の空白文字 (20)16 |
(5) EBCDIK/KEISからEUCへの文字コードの変換規則
(a) 1バイトコード
-
仮名文字を除く1バイトコードは,対応するEUCの文字コードに変換されます。
-
仮名文字は,2バイトコードに変換されます。
(b) 2バイトコード(標準文字コード)
-
対応するEUCの文字コードに変換されます。
-
機能キャラクタ( (0A42)16,(0A41)16)は削除して詰められます。これによって余りができた場合は,空白文字( (20)16)に変換されます。
-
機能キャラクタで囲まれた文字列中の (00)16 〜 (40)16は,対応するEUCの文字コードに変換されます。
-
最後の文字が2バイトコードの先頭バイトの場合,空白文字( (20)16)に変換されます。
(c) 2バイトコード(外字)
9024文字中の外字領域の後ろ8836文字を,EUC文字コードの外字領域に固定的に割り当てて変換されます。
それ以外のコードは,ユーザが作成する文字コード変換用マッピングテーブルに従って変換されます。未定義の外字,及び文字コード変換用マッピングテーブルを作成していない場合は,反映環境定義のundefcode_cnvオペランドの指定値に従って,空白文字に変換されます。
ただし,コードセット3はSQL文の発行時にエラーになることがあります。
(d) 空白文字
空白文字は,変換されます。空白文字の変換規則(EBCDIK/KEISからEUC)を次の表に示します。
EBCDIK/KEISの文字コード |
EUCの文字コード |
---|---|
全角の空白文字 (A1A1)16 |
全角の空白文字 (A1A1)16 |
二つの連続した半角の空白文字 (40)16 (40)16 |
反映環境定義のshiftspace_cnvオペランドの指定値に従って,全角の空白文字又は二つの連続した半角の空白文字に変換します。 |
半角の空白文字 (40)16 |
半角の空白文字 (20)16 |
(e) オーバフローが発生した場合の対処
半角の仮名文字は1バイトから2バイトに変換されるため,抽出対象表で半角の仮名文字を使っている場合,変換後のデータ長が長くなってオーバフローが発生することがあります。オーバフローが発生した場合の対処(EBCDIK/KEISからEUC)を次の表に示します。
発生場所 |
Datareplicatorの動作 |
ユーザの対処 |
---|---|---|
定数,更新データ |
SQLエラー(全バイト数の変換後に,データが定義長を超えた場合) |
定義長を変更して,反映処理を再実行してください。 |
- 注
-
識別子が30バイトを超えた場合,又は更新データが32,000バイトを超えた場合には,Datareplicatorは処理を続行できなくなります。このため,データ連動を開始する前に,抽出側システムをチェックして,識別子と更新データが制限値を超えないことを確認してください。
(6) EBCDIK/KEISからUTF-8への文字コードの変換規則
(a) 1バイトコード
-
仮名文字を除く1バイトコードは,対応するUTF-8の文字コードに変換されます。
-
仮名文字は,3バイトコードに変換されます。
(b) 2バイトコード(標準文字コード)
-
対応するUTF-8の文字コードに変換されます。
-
機能キャラクタ((0A42)16,(0A41)16)は削除して詰められます。これによって余りができた場合は,空白文字((20)16)に変換されます。
-
機能キャラクタで囲まれた文字列中の(00)16〜(40)16は,対応するUTF-8の文字コードに変換されます。
-
最後の文字が2バイトコードの先頭バイトの場合,空白文字(20)16に変換されます。
(c) 2バイトコード(外字)
ユーザが作成する文字コード変換用マッピングテーブルに従って変換されます。
未定義の外字,及び文字コード変換用マッピングテーブルを作成していない場合は,反映環境定義のundefcode_cnvオペランドの指定に従って,空白文字に変換されます。
(d) 空白文字
シフトコード中の空白文字は,変換されます。空白文字の変換規則(EBCDIK/KEISからUTF-8)を次の表に示します。
EBCDIK/KEISの文字コード |
UTF-8の文字コード |
---|---|
全角の空白文字 (A1A1)16 |
全角の空白文字 (E38080)16 |
二つの連続した半角の空白文字 (40)16(40)16 |
反映環境定義のshiftspace_cnvオペランドの指定値に従って,全角の空白文字又は二つの連続した半角の空白文字に変換します。 |
半角の空白文字 (40)16 |
半角の空白文字 (20)16 |
(e) オーバフローが発生した場合の対処
半角の仮名文字は1バイトから3バイトに変換され,標準漢字は2バイトから3バイトに変換されるため,抽出対象表で半角仮名文字や標準漢字を使用している場合,変換後のデータ長が長くなってオーバフローが発生することがあります。
オーバフローが発生した場合の対処(EBCDIK/KEISからUTF-8)を次の表に示します。
発生場所 |
Datareplicatorの動作 |
ユーザの対処 |
---|---|---|
定数,更新データ |
SQLエラー(全バイト数の変換後に,データが定義長を超えた場合) |
定義長を変更して,反映処理を再実行してください。 |
- 注
-
識別子が30バイトを超えた場合,又は更新データが32,000バイトを超えた場合には,Datareplicatorは処理を続行できなくなります。このため,データ連動を開始する前に,抽出側システムをチェックして,識別子と更新データが制限値を超えないことを確認してください。
(f) 注意事項
反映側DBがHiRDBでUTF-8の場合,表にNCHAR・NVARCHAR型の列を作成できません。そのため,MCHARなど別のデータ型に格納する場合は,列データ編集UOCを使用して格納してください。
(7) EBCDIKからJIS8への文字コードの変換規則
(a) 1バイトコード
JIS8コード(1バイトコード)に変換します。文字集合指定でEBCDIKを指定した列には1バイトコードしか指定できないため,次の現象が起こる可能性があります。
-
すべて1バイトコードとみなして変換するため,2バイトコードが変換対象となる場合,文字化けが発生します。
-
1バイトコードの変換では,変換前のデータ長と変換後のデータ長は変わりません。
-
すべて1バイトコードとして処理されるため,文字コード変換エラーは発生しません。
(8) JIS8からEBCDIKへの文字コードの変換規則
(a) 1バイトコード
対応するEBCDIKの文字コードに変換されます。
(b) 2バイトコード(標準文字コード)
2バイトコードの1バイト目と2バイト目をそれぞれ1バイトコードとみなし,それぞれをEBCDIKの1バイトコード2文字に変換します。そのため,次の現象が起こる可能性があります。
-
2バイトコードを変換すると文字化けが発生します。
-
1バイトコードの変換では,変換前のデータ長と変換後のデータ長は変わりません。
-
すべて1バイトコードとして処理されるため,文字コード変換エラーは発生しません。
(9) JIS8/シフトJIS又はEUCから,EBCDIK/KEISへの文字コードの変換規則
(a) 1バイトコード
対応するEBCDIK/KEISの文字コードに変換されます。
(b) 2バイトコード(標準文字コード)
対応するEBCDIK/KEISの文字コードに変換されます。
ただし,最後の文字が2バイトコードの先頭バイトの場合は,空白文字( (40)16)に変換されます。
(c) 2バイトコード(外字)
ユーザが作成する文字コード変換用マッピングテーブルに従って変換されます。
未定義の外字,及び文字コード変換用マッピングテーブルを作成していない場合は,空白文字( (4040)16)に変換されます。
(d) 空白文字
全角空白文字( (8140)16)は,対応する全角空白文字( (A1A1)16)に変換されます。半角空白文字( (20)16)は,対応する半角空白文字( (40)16)に変換されます。
(10) JIS8/シフトJISからUTF-8への文字コードの変換規則
(a) 1バイトコード
-
仮名文字を除く1バイトコードは,対応するUTF-8の文字コードに変換されます。
-
仮名文字は,3バイトコードに変換されます。
(b) 2バイトコード(標準文字コード)
対応するUTF-8の文字コードに変換されます。
(c) 2バイトコード(外字)
ユーザが作成する文字コード変換用マッピングテーブルに従って変換されます。
未定義の外字,及び文字コード変換用マッピングテーブルを作成していない場合は,反映環境定義のundefcode_cnvオペランドの指定に従って,空白文字に変換されます。
(d) 空白文字
シフトコード中の空白文字は,変換されます。空白文字の変換規則(JIS8/シフトJISからUTF-8)を次の表に示します。
JIS8/SJISの文字コード |
UTF-8の文字コード |
---|---|
全角の空白文字 (8140)16 |
全角の空白文字 (E38080)16 |
半角の空白文字 (20)16 |
半角の空白文字 (20)16 |
(e) オーバフローが発生した場合の対処
半角の仮名文字は1バイトから3バイトに変換され,標準漢字は2バイトから3バイトに変換されるため,抽出対象表で半角仮名文字や標準漢字を使用している場合,変換後のデータ長が長くなってオーバフローが発生することがあります。オーバフローが発生した場合の対処(JIS8/シフトJISからUTF-8)を次の表に示します。
発生場所 |
Datareplicatorの動作 |
ユーザの対処 |
---|---|---|
定数,更新データ |
SQLエラー(全バイト数の変換後に,データが定義長を超えた場合) |
定義長を変更して,反映処理を再実行してください。 |
- 注
-
識別子が30バイトを超えた場合,又は更新データが32,000バイトを超えた場合には,Datareplicatorは処理を続行できなくなります。このため,データ連動を開始する前に,抽出側システムをチェックして,識別子と更新データが制限値を超えないことを確認してください。
(f) 注意事項
-
反映側DBがHiRDBでUTF-8の場合,表にNCHAR・NVARCHAR型の列を作成できません。そのため,MCHARなど別のデータ型に格納する場合は,列データ編集UOCを使用して格納してください。
-
SJIS漢字コードからUnicode(UCS2)へのマッピングには,次の表に示す2種類があります。
表4‒23 SJIS漢字コードとUnicodeでの文字のマッピング マッピング方式
内容
方式
変換対象
漢字範囲
JIS方式
SJIS〜JIS X0221
JIS第1水準
JIS X0221で規定されたマッピングに従います。
JIS第2水準
MS方式
Windows符号化文字集合〜MS-Unicode
JIS第1水準
Microsoft社が規定したマッピングに従います。
JIS第2水準
ベンダ拡張文字
MS方式では,JIS方式に比べベンダ拡張文字が追加されており,UCS2に変換する際JIS方式と異なるコードポイントに設定されます。Datareplicatorは,MS方式で行います。
-
NCHAR型のデータを変換する場合,UTF-8への変換後の長さが奇数のとき,変換後のデータに半角スペースが付与されます。collenメンバ(列データ長)には,変換後の(バイト長+1)/2の値が設定されます。
UTF-8への変換後の長さが偶数の場合,変換後のデータはそのままとし,collenメンバ(列データ長)には,変換後のバイト長/2の値が設定されます。
-
抽出表のNCHAR型の定義長nが偶数の場合,反映表のMCHAR型の定義長はn*3となります。
抽出表のNCHAR型の定義長nが奇数の場合,反映表のMCHAR型の定義長は(n*3)+1となります。
(11) EUCからJIS8/シフトJISへの変換規則
(a) 1バイトコード
対応するシフトJISのコードに変換されます。
(b) 2バイトコード(標準文字コード)
対応するシフトJISのコードに変換されます。最後の文字が2バイトコードの先頭バイトである場合は,空白文字((20)16)に変換されます。
(c) 2バイトコード(外字)
ユーザが作成する文字コード変換用マッピングテーブルに従って変換されます。未定義の外字,及び文字コード変換用マッピングテーブルを作成していない場合は,反映環境定義のundefcode_cnvオペランドの指定値に従って,空白文字に変換されます。
(d) 空白文字
全角の空白文字((A1A1)16)は対応するコード((8140)16)に変換されます。2個連続する半角の空白文字((20)16)は全角空白文字((8140)16)に変換されます。1個の半角の空白文字((20)16)は対応するコード((20)16)に変換されます。
(12) EUCからUTF-8への文字コードの変換規則
(a) 1バイトコード
仮名文字を除く1バイトコードは,対応するUTF-8の文字コードに変換されます。
(b) 2バイトコード(標準文字コード)
-
仮名文字は,3バイトコードに変換されます。
-
対応するUTF-8の文字コードに変換されます。
(c) 3バイトコード(外字)
ユーザが作成する文字コード変換用マッピングテーブルに従って変換されます。
未定義の外字,及び文字コード変換用マッピングテーブルを作成していない場合は,反映環境定義のundefcode_cnvオペランドの指定に従って,空白文字に変換されます。
(d) 空白文字
シフトコード中の空白文字は,変換されます。空白文字の変換規則(EUCからUTF-8)を次の表に示します。
EUCの文字コード |
UTF-8の文字コード |
---|---|
全角の空白文字 (A1A1)16 |
全角の空白文字 (E38080)16 |
半角の空白文字 (20)16 |
半角の空白文字 (20)16 |
(e) オーバフローが発生した場合の対処
半角の仮名文字は2バイトから3バイトに変換され,標準漢字は2バイトから3バイトに変換されるため,抽出対象表で半角仮名文字や標準漢字を使用している場合,変換後のデータ長が長くなってオーバフローが発生することがあります。オーバフローが発生した場合の対処(EUCからUTF-8)を次の表に示します。
発生場所 |
Datareplicatorの動作 |
ユーザの対処 |
---|---|---|
定数,更新データ |
SQLエラー(全バイト数の変換後に,データが定義長を超えた場合) |
定義長を変更して,反映処理を再実行してください。 |
- 注
-
識別子が30バイトを超えた場合,又は更新データが32,000バイトを超えた場合には,Datareplicatorは処理を続行できなくなります。このため,データ連動を開始する前に,抽出側システムをチェックして,識別子と更新データが制限値を超えないことを確認してください。
(f) 注意事項
-
反映側DBがHiRDBでUTF-8の場合,表にNCHAR・NVARCHAR型の列を作成できません。そのため,MCHARなど別のデータ型に格納する場合は,列データ編集UOCを使用して格納してください。
-
NCHAR型のデータを変換する場合,UTF-8への変換後の長さが奇数のとき,変換後のデータに半角スペースが付与されます。collenメンバ(列データ長)には,変換後の(バイト長+1)/2の値が設定されます。
UTF-8への変換後の長さが偶数の場合,変換後のデータはそのままとし,collenメンバ(列データ長)には,変換後のバイト長/2の値が設定されます。
-
抽出表のNCHAR型の定義長nが偶数の場合,反映表のMCHAR型の定義長はn*3となります。
抽出表のNCHAR型の定義長nが奇数の場合,反映表のMCHAR型の定義長は(n*3)+1となります。
(13) UTF-8からEUC又はJIS8/シフトJISへの文字コードの変換規則
(a) 1バイトコード
対応する各文字コードに変換されます。
(b) 2バイトコード及び3バイトコード(標準漢字)
対応するUTF-8の文字コードに変換されます。
(c) 3バイトコード(外字)
ユーザが作成する文字コード変換用マッピングテーブルに従って変換されます。
未定義の外字,及び文字コード変換用マッピングテーブルを作成していない場合は,反映環境定義のundefcode_cnvオペランドの指定に従って,空白文字に変換されます。
(14) 文字コード変換の抑止
任意の抽出列に対して文字コードの変換抑止を指定すると,反映側Datareplicatorでその列の文字コード変換を抑止できます。文字コード変換の抑止の指定については,「5.10 反映定義」の更新情報フィールド定義の説明を参照してください。
(15) 各文字コード変換規則詳細
(a) JIS8/シフトJISコードの変換規則
JIS8/シフトJISコードの変換規則を次の表に示します。
1byte |
2byte |
3byte |
コード変換規則 |
---|---|---|---|
0x00-0x80 |
− |
− |
JIS8と認識し,対応するコードに変換します。 |
0x81-0x9F |
0x40-0xFC (0x7Fを除く) |
− |
SJIS(漢字)と認識し,対応するコードに変換します。 |
上記以外 |
− |
undefcode_cnvの指定によって変換します。 |
|
− |
− |
未完全コードと認識し,変換しないでスキップします。 |
|
0xA0-0xDF |
− |
− |
JIS8と認識し,対応するコードに変換します。 |
0xE0-0xEF |
0x40-0xFC (0x7Fを除く) |
− |
SJIS(漢字)と認識し,対応するコードに変換します。 |
上記以外 |
− |
undefcode_cnvの指定によって変換します。 |
|
− |
− |
未完全コードと認識し,変換しないでスキップします。 |
|
0xF0-0xFC |
0x40-0xFC (0x7Fを除く) |
− |
SJIS(外字)と認識し,対応するコードに変換します。 |
上記以外 |
− |
undefcode_cnvの指定によって変換します。 |
|
− |
− |
未完全コードと認識し,変換しないでスキップします。 |
|
0xFD-0xFF |
− |
− |
JIS8と認識し,対応するコードに変換します。 |
(b) EUCコードの変換規則
EUCコードの変換規則を次の表に示します。
1byte |
2byte |
3byte |
コード変換規則 |
---|---|---|---|
0x00-0x8D |
− |
− |
コードセット0と認識し,対応するコードに変換します。 |
0x8E |
0xA0-0xFF |
− |
コードセット2(仮名文字)と認識し,対応するコードに変換します。 |
上記以外 |
− |
undefcode_cnvの指定によって変換します。 |
|
− |
− |
未完全コードと認識し,変換しないでスキップします。 |
|
0x8F |
0xA1-0xFE |
0xA1-0xFE |
コードセット3(外字)と認識し,対応するコードに変換します。 |
上記以外 |
undefcode_cnvの指定によって変換します。 |
||
− |
未完全コードと認識し,変換しないでスキップします。 |
||
上記以外 |
0xA1-0xFE |
undefcode_cnvの指定によって変換します。 |
|
上記以外 |
|||
− |
未完全コードと認識し,変換しないでスキップします。 |
||
− |
− |
||
0x90-0x9F |
− |
− |
コードセット0と認識し,対応するコードに変換します。 |
0xA0 |
− |
− |
0x20に変換します。 |
0xA1-0xFE |
0xA1-0xFE |
− |
コードセット1(漢字)と認識し,対応するコードに変換します。 |
上記以外 |
− |
undefcode_cnvの指定によって変換します。 |
|
− |
− |
未完全コードと認識し,変換しないでスキップします。 |
(c) EBCDIK/KEISコードの変換規則
EBCDIK/KEISコードの変換規則を次の表に示します。
1byte |
2byte |
3byte |
コード変換規則 |
|
---|---|---|---|---|
半角シフト中 |
0x00-0x09 |
− |
− |
対応するコードに変換します。 |
0x0A |
0x41 |
− |
半角シフト切り替えで,変換しません。 |
|
0x42 |
− |
全角シフト切り替えで,変換しません。 |
||
上記以外 |
− |
第1バイト,第2バイトを1バイトコードとして変換します。 |
||
− |
− |
未完全コードと認識し,変換しないでスキップします。 |
||
0x0B-0xFF |
− |
− |
対応するコードに変換します。 |
|
全角シフト中 |
0x00-0x40 |
− |
− |
第1バイト,第2バイトを1バイトコードとして変換します。 |
0x41-0xA0 |
0xA1-0xFE |
− |
対応するコードに変換します。 |
|
上記以外 |
− |
undefcode_cnvの指定によって変換します。 |
||
− |
− |
未完全コードと認識し,変換しないでスキップします。 |
||
0xA1-0xFE |
0xA1-0xFE |
− |
対応するコードに変換します。 |
|
上記以外 |
− |
undefcode_cnvの指定によって変換します。 |
||
− |
− |
未完全コードと認識し,変換しないでスキップします。 |
||
0xFF |
0x01-0xFF |
− |
undefcode_cnvの指定によって変換します。 |
|
− |
− |
未完全コードと認識し,変換しないでスキップします。 |
(d) UTF-8コードの変換規則
UTF-8コードの変換規則を次の表に示します。
1byte |
2byte |
3byte |
コード変換規則 |
---|---|---|---|
0x00〜0x7F |
− |
− |
1バイトコードと認識し,対応するコードに変換します。 |
0x80〜0xBF |
0x00〜0xFF |
− |
0x20に変換します。 |
− |
− |
||
0xC2〜0xDE |
0x80〜0xFF |
− |
2バイトコードと認識し,対応するコードに変換します。 |
上記以外 |
− |
undefcode_cnvの指定によって変換します。 |
|
− |
− |
未完全コードと認識し,変換しないでスキップします。 |
|
0xDF |
0x80〜0xBF |
− |
2バイトコードと認識し,対応するコードに変換します。 |
上記以外 |
− |
undefcode_cnvの指定によって変換します。 |
|
− |
− |
未完全コードと認識し,変換しないでスキップします。 |
|
0xE0 |
0xA0〜0xFF |
0x80〜0xFF |
3バイトコードと認識し,対応するコードに変換します。 |
上記以外 |
undefcode_cnvの指定によって変換します。 |
||
− |
未完全コードと認識し,変換しないでスキップします。 |
||
上記以外 |
0x80〜0xFF |
undefcode_cnvの指定によって変換します。 |
|
上記以外 |
|||
− |
未完全コードと認識し,変換しないでスキップします。 |
||
− |
− |
||
0xE1〜0xEE |
0x80〜0xFF |
0x80〜0xFF |
3バイトコードと認識し,対応するコードに変換します。 |
上記以外 |
undefcode_cnvの指定によって変換します。 |
||
− |
未完全コードと認識し,変換しないでスキップします。 |
||
上記以外 |
0x80〜0xFF |
undefcode_cnvの指定によって変換します。 |
|
− |
未完全コードと認識し,変換しないでスキップします。 |
||
− |
− |
||
0xEF |
0x80〜0xBF |
0x80〜0xBF |
3バイトコードと認識し,対応するコードに変換します。 |
上記以外 |
undefcode_cnvの指定によって変換します。 |
||
− |
未完全コードと認識し,変換しないでスキップします。 |
||
上記以外 |
0x80〜0xBF |
undefcode_cnvの指定によって変換します。 |
|
上記以外 |
|||
− |
未完全コードと認識し,変換しないでスキップします。 |
||
− |
− |
||
上記以外 |
− |
− |
undefcode_cnvの指定によって変換します。 |