Symfoware Serverでは、以下の文字コード系を考慮する必要があります。
データベースの文字コード系
Symfoware/RDBの文字コード系
アプリケーションの文字コード系
データベースに格納する文字列型および各国語文字列型のデータの文字コード系です。データベースの文字コード系として、以下の文字コード系が使用できます。
EUCコード
シフトJISコード
UNICODE
EUCコードは、UNIX系システムの日本語環境でよく使われる文字コード系です。EUCコードには、S90とU90があります。Symfoware Serverでは、S90を使用します。U90コードを使用する場合、日本語拡張表示オプションが必要です。
シフトJISコードは、一般にDOS/Windowsや一部のUNIX系システムでも採用されている文字コード系です。シフトJISコードには、Microsoft系のシフトJISコードや各ベンダが拡張したシフトJISコードが存在します。Symfoware Serverは、Microsoft系のシフトJISコードを採用しています。
UNICODEは、世界各国の文字を統一的に扱うことを目的とした、マルチバイトの文字コード系です。UNICODEを使っている限り、言語種別を意識する必要がありません。
また、Windows Vista(R)およびWindows Server(R) 2008においては、UNICODEの補助文字(1~16面の4バイト文字)を利用できます。
文字コード系とデータベースの格納形式について、以下にまとめます。
文字列型の列は、1文字が可変バイトで表現される形式で格納されます。各国語文字列型の列は、1文字が固定バイトで表現される形式で格納されます。
文字コード系 | 格納形式 | |
---|---|---|
文字列型 | 各国語文字列型 | |
EUCコード | EUCコード | COBOL_EUC形式 |
シフトJISコード | シフトJISコード | シフトJISコード |
UNICODE | UTF-8形式 | UCS-2形式(注) |
注) 各国語文字列型において、補助文字はUCS-2の2文字として格納されます。
Symfoware Serverのインストール時にSymfoware/RDBのロケールが決定します。この時、Symfoware/RDBのロケールに対応して、Symfoware/RDBの文字コード系が決定します。
Symfoware/RDBの文字コード系とは、Symfoware/RDBプロセスが処理する際の文字コード系を示します。Symfoware/RDBが読み込む動作環境ファイルやRDBコマンドの入力ファイルの文字コード系を示します。また、Symfoware/RDBやRDBコマンドが出力するメッセージもこの文字コード系となります。
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文の実行結果を示すメッセージもこの文字コード系となります。
アプリケーションの言語と使用可能な文字コード系の組合せを以下に示します。
| 埋込み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編)”を参照してください。
アプリケーションの文字コード系の指定方法は、作成するアプリケーションにより異なります。
埋込みSQL連携およびJava連携のアプリケーション
UNIX系の場合、環境変数LANGに、使用する文字コード系のロケールを指定します。Windows(R)の場合、OSのロケールに従います。
参照
詳細は、“アプリケーション開発ガイド(埋込みSQL編)”または“アプリケーション開発ガイド(JDBCドライバ編)”を参照してください。
ODBC連携のアプリケーション
ODBCデータソース登録時に、使用する文字コード系のODBCドライバを登録します。
参照
詳細は、“アプリケーション開発ガイド(ODBCドライバ編)”を参照してください。
.NET Framework連携のアプリケーション
内部的にUNICODEで処理するため、アプリケーションの文字コード系を意識する必要はありません。
参照
詳細は、“アプリケーション開発ガイド(.NET Data Provider編)”を参照してください。
Symfoware Serverでは、クライアントがWindows Vista(R)またはWindows Server(R) 2008の場合、UNICODEの補助文字(1~16面の4バイト文字)を利用できます。アプリケーションの文字コード系とデータベースの文字コード系の組合せにより、補助文字の扱いは以下のようになります。
クライアント | サーバ | ||
---|---|---|---|
アプリケーションの文字コード系 | データベースの文字コード系 | ||
EUCコード | シフトJISコード | UNICODE | |
シフトJISコード | × (注1) | × (注1) | × (注1) |
UNICODE | × (注2) | × (注2) | 文字列型: ○ |
各国語文字列型:○ (注3) |
○: 利用できます。
×: 利用できません。
注1) アプリケーションの文字コード系がシフトJISコードの場合、補助文字は入力できません。
注2) 補助文字やその他のUNICODE固有の文字は、データを格納する際にコード変換エラーになるため、EUCコードおよびシフトJISコードには変換できません。
注3) 各国語文字列型では補助文字はUCS-2の2文字として格納されます。