ページの先頭行へ戻る
Symfoware Server  解説書

2.4.5 文字コード系

Symfoware Serverでは、以下の文字コード系を考慮する必要があります。

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

データベースに格納する文字列型および各国語文字列型のデータの文字コード系です。データベースの文字コード系として、以下の文字コード系が使用できます。

EUCコード

EUCコードは、UNIX系システムの日本語環境でよく使われる文字コード系です。EUCコードには、S90とU90があります。Symfoware Serverでは、S90を使用します。U90コードを使用する場合、日本語拡張表示オプションが必要です。

シフトJISコード

シフトJISコードは、一般にDOS/Windowsや一部のUNIX系システムでも採用されている文字コード系です。シフトJISコードには、Microsoft系のシフトJISコードや各ベンダが拡張したシフトJISコードが存在します。Symfoware Serverは、Microsoft系のシフトJISコードを採用しています。

UNICODE

UNICODEは、世界各国の文字を統一的に扱うことを目的とした、マルチバイトの文字コード系です。UNICODEを使っている限り、言語種別を意識する必要がありません。

また、Windows Vista(R)およびWindows Server(R) 2008においては、UNICODEの補助文字(1~16面の4バイト文字)を利用できます。


文字コード系とデータベースの格納形式について、以下にまとめます。

文字列型の列は、1文字が可変バイトで表現される形式で格納されます。各国語文字列型の列は、1文字が固定バイトで表現される形式で格納されます。

表2.1 文字コード系と格納形式の関係

文字コード系

格納形式

文字列型

各国語文字列型

EUCコード

EUCコード

COBOL_EUC形式

シフトJISコード

シフトJISコード

シフトJISコード

UNICODE

UTF-8形式

UCS-2形式(注)

注) 各国語文字列型において、補助文字はUCS-2の2文字として格納されます。

Symfoware/RDBの文字コード系

Symfoware Serverのインストール時にSymfoware/RDBのロケールが決定します。この時、Symfoware/RDBのロケールに対応して、Symfoware/RDBの文字コード系が決定します。

Symfoware/RDBの文字コード系とは、Symfoware/RDBプロセスが処理する際の文字コード系を示します。Symfoware/RDBが読み込む動作環境ファイルやRDBコマンドの入力ファイルの文字コード系を示します。また、Symfoware/RDBやRDBコマンドが出力するメッセージもこの文字コード系となります。

Symfoware/RDBのロケールとSymfoware/RDBの文字コード系の関係を以下に示します。

表2.2 Symfoware/RDBのロケールとSymfoware/RDBの文字コード系の関係

Symfoware/RDBのロケール

Symfoware/RDBの文字コード系

Solaris

ja

EUCコード

ja_JP.PCK

シフトJISコード

ja_JP.UTF-8

UNICODE

C

データベースの文字コード系 (注)

Linux

ja_JP.UTF-8

UNICODE

C

データベースの文字コード系 (注)

Windows

日本語

シフトJISコード

注) インストール時に指定するデータベースの文字コード系が適用されます。

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

アプリケーションのホスト変数や動的パラメタに格納するデータの文字コード系です。SQLMSGに返却されるSQL文の実行結果を示すメッセージもこの文字コード系となります。

アプリケーションの言語と使用可能な文字コード系の組合せを以下に示します。

表2.3 文字コード系と言語の組合せ

  

埋込みSQL連携

Java連携

ODBC連携

.NET Framework連携

C

COBOL

Java

C++

COBOL

Visual Basic

Visual Basic .NET

C#

COBOL

Visual Basic .NET

EUCコード

×

×

×

×

シフトJISコード(注1)

UNICODE

○(注2)

○(注2)

○(注2)

○(注2)

注1) Linuxの場合、シフトJISコードは使用できません。
注2) UCS-2形式のみ使用可能です。


Symfoware Serverでは、アプリケーションが使用する文字コード系とデータベースの文字コード系が異なる場合、自動的にコード変換を行います。詳細は、“アプリケーション開発ガイド(埋込みSQL編)”を参照してください。


アプリケーションの文字コード系の指定方法は、作成するアプリケーションにより異なります。

UNICODEの補助文字の利用について

Symfoware Serverでは、クライアントがWindows Vista(R)またはWindows Server(R) 2008の場合、UNICODEの補助文字(1~16面の4バイト文字)を利用できます。アプリケーションの文字コード系とデータベースの文字コード系の組合せにより、補助文字の扱いは以下のようになります。

表2.4 表: 文字コード系の組合せによる補助文字の扱い

クライアント

サーバ

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

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

EUCコード

シフトJISコード

UNICODE

シフトJISコード

× (注1)

× (注1)

× (注1)

UNICODE

× (注2)

× (注2)

文字列型: ○

各国語文字列型:○ (注3)

○: 利用できます。

×: 利用できません。

注1) アプリケーションの文字コード系がシフトJISコードの場合、補助文字は入力できません。

注2) 補助文字やその他のUNICODE固有の文字は、データを格納する際にコード変換エラーになるため、EUCコードおよびシフトJISコードには変換できません。

注3) 各国語文字列型では補助文字はUCS-2の2文字として格納されます。