バージョン 6.3.3
 —  オペレーション  —

NATCONV.INI での異なる文字セットのサポート

コンフィグレーションファイル NATCONV.INI の設定値が A フォーマットに適用されます。 U フォーマットでは、ICU ライブラリを使用します。

このドキュメントでは、Natural での異なる文字セットのサポート方法について、次のトピックで説明します。


異なる文字セットのサポートの重要性

異なる文字セットによる複数の言語のサポートは、国際化対応への Natural のアプローチを示します。 これは、以下を使用する場合に役立ちます。

Top of page

異なる文字セットの使用方法

言語固有文字をサポートするために Natural が使用するすべてのチェック、変換、および分類テーブルは、コンフィグレーションファイル NATCONV.INI にあります。 デフォルトでは、このファイルは Natural の etc ディレクトリにあります。

ローカルまたはアプリケーション固有の文字セットをサポートするように、NATCONV.INI を修正できます。

標準アプリケーションでは、NATCONV.INI の修正によって重大な矛盾が発生する可能性があるので、すでに Natural オブジェクトとデータベースデータが存在する場合は特に、このファイルを修正しないでください。また、その必要もありません。

NATCONV.INI の修正は十分に考慮し、慎重に実行してください。不用意な修正は、修復不可能な問題を引き起こすことがあります。

NATCONV.INI は、セクションとサブセクションに分かれます。 次のセクションが定義されています。

セクション 説明
CHARACTERSET-DEFINITION このセクションでは、内部文字セットの名前が定義されます。 デフォルトは "ISO8859_1" です。

異なる文字セットを選択する場合は、その文字セットのサブセクションが以下のセクションに含まれている必要があります。

CASE-TRANSLATION このセクションには、以下のいずれかが指定されている場合に実行される大文字から小文字への変換に必要なテーブルが含まれています。 この変換は内部文字セット内で行われます。 例えば、内部文字セットが "ISO8859_5" の場合は、このセクションに以下の 2 つのサブセクションが含まれている必要があります。
  • [ISO8859_5->UPPER]

  • [ISO8859_5->LOWER]

IDENTIFIER-VALIDATION このセクションには、識別子(ソースプログラム内のユーザー定義変数)、オブジェクト名、およびライブラリ名の検証に必要なテーブルが含まれています。 これには、各定義済み内部文字セットのサブセクションが含まれています。

このセクションでは、特殊文字の "#"(非データベース変数用)、"+"(アプリケーション非依存変数用)、"@"(SQL と Adabas の空値/長さインジケータ用)、および "&"(ダイナミックソース生成用)を再定義できます。 さらに、識別子、オブジェクト名、およびライブラリ名に有効な 1 番目および後続の文字のセットを修正できます。

注意:
オブジェクト名に有効な文字のセットを "x7f"(小数点 127)を超える値で拡張する場合は、オブジェクトのソート順(例えば、LIST * コマンド時)が番号順にならないことがあります。

CHARACTER-CLASSIFICATION このセクションには、MASK オプションを評価する場合などに使用される文字の分類に必要なテーブルが含まれています。 これには、各定義済み内部文字セットのサブセクションが含まれています。

セクション CHARACTERSET-DEFINITION と各サブセクションには、文字の変換方法および関連する属性を記述する行が含まれています。 これらの行は次のように表示されます。

line         ::=  key = value 
key          ::=  name_key | range_key 
name_key     ::=  keyword{ CHARS } 
keyword      ::=  INTERNAL-CHARACTERSET | NON-DB-VARI | DYNAMIC-SOURCE | 
                    GLOBAL-VARI | FIRST-CHAR | SUBSEQUENT-CHAR | 
                    LIB-FIRST-CHAR | LIB-SUBSEQUENT-CHAR | ALTERNATE-CARET 
                    ISASCII | ISALPHA | ISALNUM | ISDIGIT | ISXDIGIT | 
                    ISLOWER | ISUPPER | ISCNTRL | ISPRINT | ISPUNCT | 
                    ISGRAPH | ISSPACE 
range_key    ::=  hexnum | hexnum-hexnum 
value        ::=  val {, val } 
val          ::=  hexnum | hexnum-hexnum 
hexnum       ::=  xhexdigithexdigit | xhexdigithexdigit 

注意:

  1. 左辺に range_key 変数が指定された場合は、右辺に指定される値の数は、右辺に指定される値が 1 つだけ(キー範囲の各要素に割り当てられる)の場合を除いて、キー範囲に指定された値の数に一致している必要があります。
  2. 左辺に name_key 変数が指定され、対応する文字コードのリストが 1 行に収まらない場合は、"name_key =" を再度指定することによって次の行に継続できます。 行を空白またはタブで開始しないでください。

有効な行の例

x00-x1f = x00 "x00"~"x1f" のすべての文字が "x00" に変換されます。
x00-x7f = x00-x7f "x00"~"x7f" のすべての文字が変換されません。
x00-x08 = x00,x01-x07,x00 文字 "x00" と "x08" が "x00" に変換され、"x01"~"x07" の文字が変換されません。

ISALPHA = x41-x5a,x61-x7a,xc0-xd6,xd8
ISALPHA = xd9-xf6,xf8-xff

これらの 2 行に指定されたすべての文字に属性 ISALPHA が割り当てられます。

無効な行の例

x41 = 'A' すべての文字は 16 進形式で指定する必要があります。
0x00-0x1f = 0x00 16 進値は以下のいずれかの形式で指定する必要があります。

xdigitdigit
Xdigitdigit

x00-x0f = x00,x01 指定された値の数がキー範囲の要素の数と一致していません。

Top of page