Hitachi

ノンストップデータベース HiRDB Version 10 UAP開発ガイド


16.12.2 文字コード変換機能

Javaプログラム内では,文字コードはUnicodeで扱うため,JDBCドライバがHiRDBの文字データとUnicodeとの相互文字コード変換をします。この文字コード変換処理で,JDBCドライバはJava仮想マシンが提供するエンコーダ及びデコーダを利用します。このとき,Properties infoのENCODELANGでは,Java仮想マシンが提供するエンコーダ及びデコーダに対して,JDBCドライバが指定する文字セット名称を指定します。

HiRDBの文字コードとJavaの文字セットの対応(UNIX版の場合)を次の表に示します。

表16‒20 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版の場合)を次の表に示します。

表16‒21 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」を参照してください。