ページの先頭行へ戻る
Symfoware Server V12.2.0 解説書
FUJITSU Software

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(R)においては、UNICODEの補助文字(1~16面の4バイト文字)を利用できます。補助文字のコード変換はUnicode 4.1で変換します。Unicode 4.1の補助文字のコード変換は、文字列型ではUTF-8の4バイト、各国語文字列型ではUCS-2の2文字として扱われます。


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

文字列型の列は、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.eucJP

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コード (注)

UNICODE

注) Linuxの場合、シフトJISコードは使用できません。


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


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

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

Symfoware Serverでは、クライアントがWindows(R)の場合、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文字として格納されます。


補助文字のコード変換はUnicode 4.1で変換します。Unicode 4.1の補助文字のコード変換は、文字列型ではUTF-8の4バイト、各国語文字列型ではUCS-2の2文字として扱われます。

ただし、以下の製品をインストールしている場合、Unicode 2.0でコード変換を行います。

Unicode 2.0とUnicode 4.1の補助文字のコード変換はサロゲートペア領域の扱いが異なります。Unicode 4.1はUNICODEの補助文字を、UTF-8に変換すると、4バイト文字に変換します。Unicode 2.0はUTF8として3バイトまでしか扱えません。そのため、UNICODEの補助文字をUTF-8に変換すると、3バイト文字のペア(3バイト×2)に変換されます。

TCP/IP接続のアプリケーションにおいて、Unicode 2.0でコード変換を行うSymfoware Server 9.1.0以前のバージョンレベル、または、Interstage Charset Managerをインストールしている環境と混在する場合、クライアント用の動作環境ファイルのCHARACTER_TRANSLATEの指定により、Unicode 2.0でコード変換を行います。

クライアント

サーバ

CHARACTER_TRANSLATE

UNICODEのコード変換

Symfoware Server Client 9.1.0以前、またはUnicode 2.0のInterstage Charset Managerをインストール

Symfoware Server 9.2.0以降

SERVER

Unicode 4.1

CLIENT

Unicode 2.0

Symfoware Server Client 9.1.1以降

Symfoware Server 9.1.0以前、またはUnicode 2.0のInterstage Charset Managerをインストール応

SERVER

Unicode 2.0

CLIENT

Unicode 4.1


また、JDBCドライバが動作するJDKについて、Java SE 5.0でUnicode 4.0のコード変換や補助文字のコードポイントを扱うメソッドが追加されています。Javaアプリケーションにおいて、補助文字を扱う場合、Java SE 5.0以降を使用してください。