16.12.2 文字コード変換機能
Javaプログラム内では,文字コードはUnicodeで扱うため,JDBCドライバがHiRDBの文字データとUnicodeとの相互文字コード変換をします。この文字コード変換処理で,JDBCドライバはJava仮想マシンが提供するエンコーダ及びデコーダを利用します。このとき,Properties infoのENCODELANGでは,Java仮想マシンが提供するエンコーダ及びデコーダに対して,JDBCドライバが指定する文字セット名称を指定します。
HiRDBの文字コードとJavaの文字セットの対応(UNIX版の場合)を次の表に示します。
HiRDBの文字コード |
文字セット |
備考 |
---|---|---|
sjis (シフトJIS漢字) |
"SJIS" |
全角文字に外字を含みます。 |
ujis (EUC日本語漢字) |
"EUC_JP" (Japanese EUC) |
全角文字に外字を含みません。※ |
chinese (EUC中国語漢字) |
"EUC_CN" (Simplified Chinese) |
全角文字に外字を含みません。※ |
lang-c (8ビットコード) |
"ISO-8859-1" (ISO Latin-1) |
US ASCII及び8ビットコードの場合に使用できます。 |
UTF-8 |
UTF-8 |
なし。 |
chinese-gb18030 (中国語漢字コード(GB18030)) |
GB18030 |
なし。 |
- 注
-
次に示す方法でProperties infoのENCODELANGを設定している場合,これを優先してエンコーディングします。
-
DriverManager.getConnectionメソッドの引数として渡すProperties infoで設定
-
JdbhDataSource.setEncodeLangメソッド,JdbhConnectionPoolDataSource.setEncodeLangメソッド,又はJdbhXADataSourceメソッドで設定
上記の方法でENCODELANGを設定していない場合の動作,及び"OFF"を設定した場合の動作については,「setEncodeLang」を参照してください。
-
- 注※
-
EUCコードセット3((8F)16(XXXX)16の3バイトで表現される文字コード)に割り当てられた外字コードは使用できません。
HiRDBの文字コードとJavaの文字セットの対応(Windows版の場合)を次の表に示します。
HiRDBの文字コード |
文字セット |
備考 |
---|---|---|
sjis (シフトJIS漢字) |
Java仮想マシンの標準エンコードが"MS932"の場合は"MS932" "MS932"以外の場合は"SJIS" |
全角文字に外字を含みます。 |
UTF-8 |
UTF-8 |
なし。 |
- 注
-
次に示す方法でProperties infoのENCODELANGを設定している場合,これを優先してエンコーディングします。
-
DriverManager.getConnectionメソッドの引数として渡すProperties infoで設定
-
JdbhDataSource.setEncodeLangメソッド,JdbhConnectionPoolDataSource.setEncodeLangメソッド,又はJdbhXADataSourceメソッドで設定
上記の方法でENCODELANGを設定していない場合の動作,及び"OFF"を設定した場合の動作については,「setEncodeLang」を参照してください。
-