ページの先頭行へ戻る
Symfoware Server V11.0.0 アップデート情報
Symfoware

2.49 文字コード系の指定方法の変更

変更内容

Symfoware Serverの動作環境と文字コード系

Symfoware Serverの動作環境と文字コード系について、以下の変更があります。

変更内容

バージョンレベル

5.0.1以前

6.0.x

7.0.x

8.0.0以降

動作環境

利用者は、EUC環境にしてインストールします。

Symfoware Serverは、OSのデフォルトロケールを見て、そのロケールに合った動作環境をインストールします。
利用者は、OSのデフォルトロケールに動作させたいロケールを設定して、Symfoware Serverをインストールします。

データベースの文字コード系の指定方法

RDBディクショナリ作成(rdbcrdicコマンド)時に指定します。

Symfoware Serverをインストールするときにロケールに合わせて自動選択されます(推奨)。6.0.1以前の互換保証から、6.0.1以前で組合せ可能な範囲で別の文字コード系を指定することができます。

データベースの文字コード系に指定できる文字コード系

  • EUC:
    EUCコードのU90コード

  • SJIS:
    シフトJISコード

  • Unicode:
    UNICODE

  • EUC_S90:
    EUCコードのS90コード

  • EUC_U90:
    EUCコードのU90コード

  • SJIS:
    シフトJISコード

  • Unicode:
    UNICODE

  • EUC_S90:
    EUCコードのS90コード

  • SJIS:
    シフトJISコード

  • Unicode:
    UNICODE

EUCコードのデフォルト値

EUCコードのU90コードを使用しています。

EUCコードのS90コードを使用しています。

rdbprtコマンド(-m CODEオプション指定時)の表示項目とその意味

  • EUC:
    EUCコードのU90コード

  • SJIS:
    シフトJISコード

  • Unicode:
    UNICODE

  • EUC_S90:
    EUCコードのS90コード

  • EUC_U90:
    EUCコードのU90コード

  • EUC:
    EUCコードのU90コード(-Z CODEオプションを指定した場合のみ出力されます)

  • SJIS:
    シフトJISコード

  • Unicode:
    UNICODE

RDBコマンドのロケール

RDBコマンドのロケールの設定方法が、以下のように変更になりました。

変更内容

バージョンレベル

5.0.1以前

6.0.1

7.0以降

RDBコマンドのロケールの設定方法

ja_JP.eucJPに設定します。

Symfoware/RDBのロケール(OSのデフォルトロケール)に合わせます。

Symfoware/RDBのロケール(OSのデフォルトロケール)に合わせるか、UNIX系標準のCロケールにする必要があります。

Symfoware/RDBのロケールと違う場合の動作

動作保証しません。
RDBコマンドの動作がエラーになったり、文字化けが発生します。

qdg13949uのエラーとなります。

qdg13959uのエラーとなります。

ロードデータ、アンロードデータの文字コード系

ロードデータやアンロードデータで指定する外部ファイルの文字コード系は利用者が明に指定できます。指定できる文字コード系が以下のように変更になりました。

変更内容

バージョンレベル

6.0.1以前

7.0以降

指定できる文字コード系

  • EUC:
    EUCコードのU90コード

  • SJIS:
    シフトJISコード

  • UNICODE:
    UNICODE

  • EUC_S90:
    EUCコードのS90コード

  • EUC_U90:
    EUCコードのU90コード

  • EUC:
    EUCコードのU90コード

  • SJIS:
    シフトJISコード

  • UNICODE:
    UNICODE

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

COBOL言語以外のアプリケーションでは、ホスト変数やSQLメッセージ(SQLMSG)で使用する文字コード系を指定できます。この指定は、クライアント用の動作環境ファイルの以下のパラメタで指定できます。

  • CHAR_SET

  • NCHAR_CODE

これらのパラメタで指定できる文字コード系が以下のように変更になりました。

変更内容

バージョンレベル

6.0.1以前

7.0以降

CHAR_SETで指定できる文字コード系

  • EUC:
    EUCコードのU90コード

  • SJIS:
    シフトJISコード

  • UTF8:
    UNICODE

  • EUC_S90:
    EUCコードのS90コード

  • EUC_U90:
    EUCコードのU90コード

  • EUC:
    EUCコードのU90コード

  • SJIS:
    シフトJISコード

  • UTF8:
    UNICODE

NCHAR_CODEで指定できる文字コード系

  • EUC:
    EUCコードのU90コード

  • COBOL_EUC:
    COBOL_EUC形式のU90コード

  • SJIS:
    シフトJISコード

  • UTF8:
    UTF-8形式

  • UCS2:
    UCS-2形式

  • UCS2B:
    バイトスワップしたUCS-2形式

  • EUC_S90:
    EUCコードのS90コード

  • EUC_U90:
    EUCコードのU90コード

  • EUC:
    EUCコードのU90コード

  • COBOL_EUC_S90:
    COBOL_EUC形式のS90コード

  • COBOL_EUC_U90:
    COBOL_EUC形式のU90コード

  • COBOL_EUC:
    COBOL_EUC形式のU90コード

  • SJIS:
    シフトJISコード

  • UTF8:
    UTF-8形式

  • UCS2:
    UCS-2形式

  • UCS2B:
    バイトスワップしたUCS-2形式

マルチRDBシステムの文字コード系

マルチRDBシステムの文字コード系において、以下の変更点があります。

変更内容

バージョンレベル

6.0.1以前

7.0以降

マルチRDBシステムで指定できるデータベースの文字コード系の種類

複数の文字コード系を選択できます。

複数の文字コード系を選択できません。

非互換

5.0.1以前6.x以降の非互換
Symfoware/RDBとRDBコマンドのロケールのエラーチェック

6.0以降では、Symfoware/RDBのロケールとRDBコマンドのロケールは、OSのデフォルトロケールと一致させる必要があります。

6.0.1以前と7.0以降の非互換
EUCコードのデフォルト値

EUCコードのデフォルト値が、U90からS90に変更になりました。

データベースの格納データの文字コード系の表示

EUCコードは、S90かU90かの詳細が表示されるようになりました。

Symfoware/RDBとRDBコマンドのロケールのエラーチェック

Symfoware/RDBのロケールとRDBコマンドのロケールが、OSのデフォルトロケールと一致していない場合に、出力されるエラーが以下のように変更になりました。

6.0.1以前
qdg13949u
パッケージインストール時の文字コードと環境変数で指定した文字コードが異なっています s*
[メッセージの意味]
  パッケージインストール時の文字コードと環境変数('LANG'または'LC_MESSAGES'または'LC_ALL')で指定した文字コードが異なっています。
[パラメタの意味]
  s*: RDBシステム名
  RDBシステム名はマルチRDBの場合のみ出力されます。
[システムの処理]
  処理を中止します。
[利用者の処置]
環境変数を正しく指定し、再実行してください。
7.0以降
qdg13959u
環境変数で指定したロケール's*'に誤りがあります Symfoware/RDBのロケール='t*' u*
[メッセージの意味]
  環境変数で指定したロケールに誤りがあります。環境変数は“LC_ALL”、“LC_MESSAGES”、“LANG”の順番で有効となります。
[パラメタの意味]
  s*: 環境変数のロケール
  t*: Symfoware/RDBのロケール
  u*: RDBシステム名
  RDBシステム名はマルチRDBの場合のみ出力されます。
[システムの処理]
  処理を中止します。
[利用者の処置]
環境変数を正しく指定して再実行してください。
マルチRDBシステムの文字コード系

6.0.1以前は、マルチRDBシステムで複数の文字コード系を選択することができましたが、7.0以降ではSymfoware Serverのインストール時に選択された文字コード系のみ利用可能です。

V7.0L108.0.0以降の非互換
指定できるデータベースの文字コード系

初期インストール時に指定する、データベースの文字コード系の値の中でEUC_U90が指定不可となりました。

対処方法

5.0.1以前6.0以降の非互換に対する対処
Symfoware/RDBとRDBコマンドのロケールのエラーチェック

回避方法はありません。

6.0.1以前と7.0以降の非互換に対する対処
EUCコードのデフォルト値

データベースの文字コード系にEUCコードのU90コードを指定したい場合は、symfo_installコマンドを利用したアップグレードインストール時に指定してください。

データベースの格納データの文字コード系の表示

rdbprtコマンドを実行するとき、Zオプションを指定して6.0.1以前の出力形式で出力してください。

Symfoware/RDBとRDBコマンドのロケールのエラーチェック

回避方法はありません。メッセージ本文を読み替えてください。

マルチRDBシステムの文字コード系

RDBディクショナリ作成コマンド(rdbcrdic)により、インストールした文字コード系以外の文字コードを選択してください(rdbcrdicコマンドの文字コード系の指定は互換として存在します)。

RDBディクショナリを、60メガバイトの容量で、ローデバイス/dev/raw/raw5に作成する場合の例を以下に示します。

例1

UNICODEを使用する場合

$ rdbcrdic -r /dev/raw/raw5 -a 60M -U
例2

シフトJISコードを使用する場合

$ rdbcrdic -r /dev/raw/raw5 -a 60M -S
V7.0L108.0.0以降の非互換に対する対処
指定できるデータベースの文字コード系

回避方法はありません。