ページの先頭行へ戻る
Symfoware Server V12.1.x アプリケーション開発ガイド(JDBCドライバ編)
FUJITSU Software

2.2.1 文字コード系の決定

Javaのアプリケーションでは、以下の文字コード系が使用できます。

Javaのアプリケーションは、文字データを内部的にUNICODEで扱っており、Javaアプリケーションに対して文字コード系がUNICODEの入出力を行う場合、データベース格納文字コード系にUNICODEを選択することでコード変換処理が軽減するという利点があります。

拡張漢字および拡張非漢字を流通する場合

Javaのアプリケーションは、文字データを内部的にUNICODE (UCS-2)で扱っており、Javaアプリケーションに対してUNICODE以外の文字コード系の入出力を扱う場合、Javaのコード変換機能(Javaコンバータ)が動作します。このJavaのコード変換機能は、JIS漢字およびJIS非漢字以外の文字コードの変換をサポートしていないので、拡張文字を流通させる際にはすべてUNICODEで流通させることを推奨します。

UNICODE流通するには、データベースに格納する文字コード系をUNICODEとします。

SolarisマシンまたはLinuxマシンでMSベンダー文字を流通する場合

JavaのアプリケーションでMSベンダー文字を流通する場合もUNICODEでの流通を推奨します。ただし、UNICODE流通しなくても、JDBCドライバおよびJavaのエンコーディング名にMS932を指定することでMSベンダー文字の流通を行うことができます。Windows(R)マシンの場合にはデフォルトでMS932が指定されています。

SolarisマシンまたはLinuxマシン上にJDBCドライバがインストールされていて、Windows(R)マシンとの間でデータのやりとりを行う場合には、MS932を指定することでMSベンダー文字をWindows(R)マシンから入出力することができます。ただし、SolarisマシンまたはLinuxマシンでは、MSベンダー文字を標準出力することはできません。また、エンコーディング名にMS932を指定したSolarisマシンとエンコーディング名にSJISを指定または省略したSolarisマシン、またはエンコーディング名にMS932を指定したLinuxマシンとエンコーディング名にSJISを指定または省略したLinuxマシンとの間でデータのやりとりをする場合に、一部の文字(“-”や“~”など)が文字化けなどで流通できなくなります。エンコーディング名が混在しているシステムの場合には注意が必要となります。

なお、ベンダー依存の問題に関する詳細については、“2.2.2 文字コード系に関する留意事項”を参照してください。

UNICODE以外の文字コード系を使用する場合には、Javaアプリケーションのエンコーディング名にMS932を設定してください。

JDBCドライバに対してエンコーディング名にMS932を設定する場合は、以下のように設定してください。

javaconverterオプションを設定する場合:
記述形式
javaconverter=MS932
設定方法

JDBCデータソース登録ツールの「オプション情報設定」画面で「その他パラメタ」の欄にオプションを設定してください。

クライアント用の動作環境ファイルのJAVA_CONVERTERパラメタを指定する場合:
記述形式
JAVA_CONVERTER=(MS932)

クライアント用の動作環境ファイルのJAVA_CONVERTERパラメタの詳細は、“5.2.3.5 クライアント用の動作環境ファイルの指定について”を参照してください。

アプリケーション実行環境のロケールがCの場合

アプリケーション実行環境のロケールがCで、ASCIIコード範囲外の文字データを利用する場合、javaconverterオプションまたはクライアント用の動作環境ファイルのJAVA_CONVERTERパラメタで対象データのエンコーディングを指定してください。javaconverterオプションの詳細は、“5.2.4.3 オプションの設定”を参照してください。

クライアント用の動作環境ファイルのJAVA_CONVERTERパラメタの詳細は、“5.2.3.5 クライアント用の動作環境ファイルの指定について”を参照してください。