Symfoware(R) Server RDBユーザーズガイド 応用プログラム開発編 - FUJITSU -
目次 索引 前ページ次ページ

上へ第6章 クライアント・サーバ

6.6 コード変換に関する注意事項

応用プログラムの文字コード系とデータベースの文字コード系が異なる場合、文字列のコード変換が必要です。コード変換について以下の順に説明します。

■コード変換の発生条

Symfoware/RDBでは、EUC、シフトJISおよびUNICODEのデータ入力コード系が取り扱えます。応用プログラムの文字コード系とデータベースの文字コード系が異なる場合は、コード変換が行われます。以下にコード変換が発生する場合を示します。

なお、文字コード系が異なるデータベースからデータを受け取る場合、変換先の応用プログラムに、該当する文字コードが存在しない文字はアンダーバー“_”に変換されます。逆に、応用プログラムから文字コード系が異なるデータベースにデータを格納する場合、変換先のデータベースに、該当する文字コードが存在しない文字は、コード変換エラーとなります。

データベースの文字コード系

応用プログラムの文字コード系(注1)

コード種別

対象OS

EUCコード(注2)

シフトJISコード

UNICODE(注3)

EUCコード

UNIX系

シフトJISコード

UNIX系、
Windows 2000および
Windows Server 2003

UNICODE(注4)

UNIX系、
Windows 2000および
Windows Server 2003

EBCDICコード

グローバルサーバ

×

×

JEFコード

×

×

JISコード

×

×

◎ : コード変換は発生しません。

△ : コード変換が発生します。

× : コード変換できません。

注1) 応用プログラムの文字コード系とは、定数およびホスト変数へ入出力するデータの文字コードです。

注2) UNIX系システム、Windows 2000、Windows XPおよびWindows Server 2003で使用可能です。

注3) UNIX系システムではC言語を使用した場合、Windows 2000、Windows XPおよびWindows Server 2003ではC言語、COBOL言語を使用した場合に使用可能です。

注4) Symfoware Server Enterprise Extended Edition、Symfoware Server Enterprise EditionまたはSymfoware Server Standard Editionの場合に使用可能です。

◆UNIX系システムまたはWindowsからグローバルサーバに接続する場合

コード変換の方式は、RDA-SVが管理するクライアント環境管理簿に登録されているEBCDIC変換情報にしたがって行われます。クライアント環境管理簿の詳細については、利用するサーバに対応した“RDA-SVオペレーションガイド”を参照してください。

◆シフトJISコーとUNICODE間で変換が行われる場合

シフトJISは、各コード変換製品のデフォルトであるシフトJIS(MS)をそのまま利用してください。

文字コードの詳細については、UNIX系の場合は標準コード変換のマニュアルを、また、Windows Me、Windows 2000、Windows XPまたはWindows Server 2003の場合はInterstage Charset Managerのマニュアルを参照してください。

image

1つのコードはさらに複数に分かれています。例えば、EUCコーはEUC(U90)およびEUC(S90)、シフトJISコードはSJIS(R90)およびSJIS(MS)などに分かれています。コードのタイプが各クライアントによって異なる場合、1つのデータベースにEUC(U90)とEUC(S90)のデータが格納されると、データベースからデータを取り出すときに正しく表示されないことがあります。
したがって、クライアントが複数の場合は、クライアント間でコードを統一してください。

■データの格納領域の大き

異なるシステム間で、データベースからデータを受け取る場合、応用プログラム側で十分なホスト変数領域を確保する必要があります。十分な領域長は、データべースに格納されているデータの種類に依存します。

表:各システムの文字の種類とバイト長を参考にしてください。

[表:各システムの文字の種類とバイト]

単位:バイト

文字の
種類

MS-DOSおよび
Windows Me

Windows XP

Windows 2000 および
Windows Server 2003

UNIX系

グローバル
サーバ

英数字

(EBCDIC) 1

半角カナ

(シフトJIS) 1

(シフトJIS) 1
(UNICODE)2〜6

(シフトJIS) 1
(UNICODE)2〜6

(EUC(U90)) 2
(シフトJIS) 1
(UNICODE)2〜6

(JIS) 1

制御文字

漢字

(シフトJIS) 2

(シフトJIS) 2
(UNICODE)2〜6

(シフトJIS) 2
(UNICODE)2〜6

(EUC(U90))2〜3
(シフトJIS) 2
(UNICODE)2〜6

(JEF) 2

■未定義文字の変

変換先に該当する文字コードが存在しない文字は、アンダーバー“_”に変換されます。

■コード変換指定に従わないも

コード変換は、クライアント用の動作環境ファイルの実行パラメタ(CHARACTER_TRANSLATE)の指定により、クライアントまたはサーバのどちらかで行います。ただし、この変換指定に従わず、サーバシステムでのコード系に従って処理されるものは、以下のとおりです。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 2003-2004