コンフィグレーションファイル NATCONV.INI の設定値が A フォーマットに適用されます。 U フォーマットでは、ICU ライブラリを使用します。
このドキュメントでは、Natural での異なる文字セットのサポート方法について、次のトピックで説明します。
異なる文字セットによる複数の言語のサポートは、国際化対応への Natural のアプローチを示します。 これは、以下を使用する場合に役立ちます。
言語固有文字の大文字/小文字変換
Natural 識別子、オブジェクト名、およびライブラリ名の言語固有文字
マスク定義と比較されるオペランドの言語固有文字(『プログラミングガイド』の「MASK オプション」を参照)
言語固有文字をサポートするために Natural が使用するすべてのチェック、変換、および分類テーブルは、コンフィグレーションファイル NATCONV.INI にあります。 デフォルトでは、このファイルは Natural の etc ディレクトリにあります。
ローカルまたはアプリケーション固有の文字セットをサポートするように、NATCONV.INI を修正できます。
標準アプリケーションでは、NATCONV.INI の修正によって重大な矛盾が発生する可能性があるので、すでに Natural オブジェクトとデータベースデータが存在する場合は特に、このファイルを修正しないでください。また、その必要もありません。
NATCONV.INI の修正は十分に考慮し、慎重に実行してください。不用意な修正は、修復不可能な問題を引き起こすことがあります。
NATCONV.INI は、セクションとサブセクションに分かれます。 次のセクションが定義されています。
セクション | 説明 |
---|---|
CHARACTERSET-DEFINITION |
このセクションでは、内部文字セットの名前が定義されます。 デフォルトは
"ISO8859_1" です。
異なる文字セットを選択する場合は、その文字セットのサブセクションが以下のセクションに含まれている必要があります。 |
CASE-TRANSLATION |
このセクションには、以下のいずれかが指定されている場合に実行される大文字から小文字への変換に必要なテーブルが含まれています。
|
IDENTIFIER-VALIDATION
|
このセクションには、識別子(ソースプログラム内のユーザー定義変数)、オブジェクト名、およびライブラリ名の検証に必要なテーブルが含まれています。
これには、各定義済み内部文字セットのサブセクションが含まれています。
このセクションでは、特殊文字の "#"(非データベース変数用)、"+"(アプリケーション非依存変数用)、"@"(SQL と Adabas の空値/長さインジケータ用)、および "&"(ダイナミックソース生成用)を再定義できます。 さらに、識別子、オブジェクト名、およびライブラリ名に有効な 1 番目および後続の文字のセットを修正できます。 注意: |
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
注意:
range_key
変数が指定された場合は、右辺に指定される値の数は、右辺に指定される値が 1
つだけ(キー範囲の各要素に割り当てられる)の場合を除いて、キー範囲に指定された値の数に一致している必要があります。
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 |
これらの 2 行に指定されたすべての文字に属性 ISALPHA
が割り当てられます。
|
x41 = 'A' | すべての文字は 16 進形式で指定する必要があります。 |
0x00-0x1f = 0x00 | 16 進値は以下のいずれかの形式で指定する必要があります。
xdigitdigit |
x00-x0f = x00,x01 | 指定された値の数がキー範囲の要素の数と一致していません。 |