Symfoware Server アプリケーション開発ガイド(JDBCドライバ編) - FUJITSU - |
目次
索引
![]() ![]() |
第2章 アプリケーションの設計 | > 2.2 文字コード系の考慮 | > 2.2.2 文字コード系の設計 |
流通する文字データごとの設定について説明します。
Javaのアプリケーションは、文字データを内部的にUNICODE (UCS-2)で扱っており、Javaアプリケーションに対してUNICODE以外の文字コード系の入出力を扱う場合、Javaのコード変換機能(Javaコンバータ)が動作します。このJavaのコード変換機能は、JIS漢字およびJIS非漢字以外の文字コードの変換をサポートしていないので、拡張文字を流通させる際にはすべてUNICODEで流通させることを推奨します。
UNICODE流通するには、データベースに格納する文字コード系をUNICODEとし、Javaのアプリケーションが動作するマシンに富士通コード変換製品をインストールする必要があります。また、データベースに対して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を設定する場合は、以下のように設定してください。
JIS規格において1983年に互換を伴わない改定が行われ、各プラットフォームで対応レベルが異なるため、しばしば問題が発生しています。
この改定では、新字体と旧字体の第一水準と第二水準の入替え、新しい文字の追加などが行われていますが、一番大きな問題は旧字体の一部を廃止し、新字体に統一したことが挙げられます。
これに対し、各文字コード系の対応状況は以下のとおりです。
文字コード系 |
対応 |
|
---|---|---|
シフトJISコード |
R90 |
新字体に置き換えたが、一部の旧字体の文字は新字体に置き換えない。 |
MS-SJIS |
すべてを新字体に置き換える。 |
|
EUCコード |
すべてを新字体に置き換える。 |
注) UNICODEは83JIS改定とは無関係に新字体しか存在しません。
新字体と旧字体はそれぞれ別の文字として扱われており、両者間での文字変換はサポートされていません。
Javaのアプリケーションで83JIS改定文字を流通する場合には、UNICODEでの流通を推奨します。
UNICODE流通するには、データベースに格納する文字コード系をUNICODEとします。また、データベースに対してRDB2_TCP連携またはローカルで接続してください。
アプリケーション実行環境のロケールがCで、ASCIIコード範囲外の文字データを利用する場合、javaconverterオプションで対象データのエンコーディングを指定してください。javaconverterオプションの詳細は、“オプションの設定”を参照してください。
目次
索引
![]() ![]() |