Symfoware Server アプリケーション開発ガイド(JDBCドライバ編) - FUJITSU - |
目次 索引 |
第2章 アプリケーションの設計 | > 2.2 文字コード系の考慮 |
Javaのアプリケーションでは、以下の文字コード系が使用できます。
EUCコード
シフトJISコード
UNICODE
Javaのアプリケーションは、文字データを内部的にUNICODEで扱っており、Javaアプリケーションに対して文字コード系がUNICODEの入出力を行う場合、データベース格納文字コード系にUNICODEを選択することでコード変換処理が軽減するという利点があります。
Javaのアプリケーションは、文字データを内部的にUNICODE (UCS-2)で扱っており、Javaアプリケーションに対してUNICODE以外の文字コード系の入出力を扱う場合、Javaのコード変換機能(Javaコンバータ)が動作します。このJavaのコード変換機能は、JIS漢字およびJIS非漢字以外の文字コードの変換をサポートしていないので、拡張文字を流通させる際にはすべてUNICODEで流通させることを推奨します。
UNICODE流通するには、データベースに格納する文字コード系をUNICODEとします。また、データベースに対してRDB2_TCP連携またはローカルで接続してください。
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マシンとの間でデータのやりとりをする場合に、一部の文字(“−”や“〜”など)が文字化けなどで流通できなくなります。エンコーディング名が混在しているシステムの場合には注意が必要となります。
なお、ベンダー依存の問題に関する詳細については、“文字コード系に関する留意事項”を参照してください。
UNICODE以外の文字コード系を使用する場合には、Javaアプリケーションのエンコーディング名にMS932を設定してください。
JDBCドライバに対してエンコーディング名にMS932を設定する場合は、以下のように設定してください。
アプリケーション実行環境のロケールがCで、ASCIIコード範囲外の文字データを利用する場合、javaconverterオプションで対象データのエンコーディングを指定してください。javaconverterオプションの詳細は、“オプションの設定”を参照してください。
目次 索引 |