ページの先頭行へ戻る
Symfoware Server V10.0.0/V10.0.1 アプリケーション開発ガイド(埋込みSQL編)

2.3.1 文字コード系の決定

C言語およびCOBOL言語のアプリケーションで使用する文字コード系について説明します。

アプリケーションで使用可能な文字コード系

C言語およびCOBOL言語のアプリケーションでは、以下の文字コード系が使用できます。

使用する文字コード系はアプリケーションのロケールで指定します。アプリケーションのロケールは、以下のように指定します。

表2.1 アプリケーションのロケールの指定

対象OS

ロケールの指定

Solaris
Linux

環境変数LANGでロケールを指定します。

Windows

OSのロケールに従います。

UNIX系システムでは環境変数LANGに、Cロケールを指定することも可能です。Symfoware/RDBは、ロケールの言語がjaで始まる場合は日本語のメッセージを出力し、それ以外のロケール(Cロケールなど)の場合は英語でメッセージを出力します。Cロケールの場合、アプリケーションが動作する環境によって、アプリケーションの文字コード系は以下のようになります。

アプリケーションが動作する環境

アプリケーションの文字コード系

Symfoware/RDBと同一サーバのアプリケーション

Symfoware/RDBインストール時に指定するデータベースの文字コード系

Connection Managerを利用するアプリケーション

Connection Managerインストール時に指定するアプリケーションの文字コード系

クライアント端末のアプリケーション

Symfoware Server クライアント機能インストール時に指定するアプリケーションの文字コード系

ホスト変数の文字コード系

アプリケーションで使用するホスト変数、動的パラメタ、およびSQLMSGの文字コード系について説明します。

C言語のアプリケーションで使用するホスト変数の文字コード系

アプリケーションで使用するホスト変数、動的パラメタ、およびSQLMSGの文字コード系は、環境変数LANGの値によって決定します。これを変更するには、クライアント用の動作環境ファイルのパラメタCHAR_SETおよびNCHAR_CODEで指定します。

文字列型ホスト変数の文字コード系は、パラメタCHAR_SETに指定します。指定する値を以下に示します。

表2.2 文字列型ホスト変数の文字コード系

文字コード系

CHAR_SETの指定値

EUCコード

S90コード

EUC_S90

U90コード

EUC_U90またはEUC

シフトJISコード

SJIS

UNICODE

UTF-8形式

UTF8

各国語文字列型ホスト変数の文字コード系は、パラメタNCHAR_CODEに指定します。指定する値を以下に示します。

表2.3 各国語文字列型ホスト変数の文字コード系

文字コード系

NCHAR_CODEの指定値

EUCコード

S90コード

EUC_S90

U90コード

EUC_U90またはEUC

S90コード(COBOL_EUC形式)

COBOL_EUC_S90

U90コード(COBOL_EUC形式)

COBOL_EUC_U90またはCOBOL_EUC

シフトJISコード

SJIS

UNICODE

UTF-8形式

UTF8

UCS-2形式(注)

UCS2

バイトスワップしたUCS-2形式(注)

UCS2B

注) UCS-2形式およびバイトスワップしたUCS-2形式では、補助文字(1~16面の4バイト文字)は2文字となります。

クライアント用の動作環境ファイルに文字コード系が指定されていない場合は、環境変数LANGの値によってデフォルトの文字コード系が決まります。環境変数LANGと使用される文字コード系の関係を以下に示します。

表2.4 デフォルトの文字コード系

環境変数LANGの値

文字列型ホスト変数の格納形式

各国語文字列型ホスト変数の格納形式

ja

EUCコード

ja_JP.PCK

シフトJISコード

ja_JP.UTF-8

UTF-8形式

COBOL言語のアプリケーションで使用するホスト変数の文字コード系

アプリケーションで使用するホスト変数、動的パラメタ、およびSQLMSGでは以下の文字コード系が使用できます。


SolarisLinux文字列型ホスト変数および各国語文字列型のホスト変数の文字コード系は、環境変数LANGの値によって決まります。環境変数LANGとコード系の関係を以下に示します。

SolarisLinux表2.5 COBOL言語のアプリケーションの文字コード系

環境変数LANGの値

文字列型ホスト変数の格納形式

各国語文字列型ホスト変数の格納形式

ja

EUCコード

COBOL_EUC形式

ja_JP.PCK

シフトJISコード

ja_JP.UTF-8

UTF-8形式

Solaris

UCS-2形式(注1)

Linux

バイトスワップしたUCS-2形式(注1) (注2)

注1) UCS-2形式およびバイトスワップしたUCS-2形式では、補助文字(1~16面の4バイト文字)は2文字となります。

注2) コンパイル時のオプションの指定により、ビッグエンディアンとリトルエンディアンのいずれかの形式を選択することができます。


Windowsアプリケーションで使用するホスト変数、動的パラメタ、およびSQLMSGでは、シフトJISコードまたはUNICODEが使用できます。UNICODEを使用する場合、アプリケーションのコンパイル時にオプションで指定します。

文字コード系とホスト変数の格納形式の関係を以下に示します。

Windows表2.6 COBOL言語のアプリケーションの文字コード系とホスト変数の格納形式

文字コード系

文字列型ホスト変数の格納形式

各国語文字列型ホスト変数の格納形式

シフトJISコード

シフトJISコード

UNICODE

UTF-8形式

バイトスワップしたUCS-2形式(注)

注) バイトスワップしたUCS-2形式では、補助文字(1~16面の4バイト文字)は2文字となります。

注意

COBOL言語のアプリケーションの場合は、クライアント用の動作環境ファイルに指定されたパラメタCHAR_SETおよびNCHAR_CODEは無視されます。