uconvdef ソース・ファイル・フォーマット

目的

UCONVDEF コマンドへの入力の UCS-2 (Unicode) 変換マッピングを定義します。

説明

変換マッピング値は、UCS-2 記号文字名の後に、マルチバイト・コード・セットの文字エンコード (コード・ポイント) 値を使用して定義されます。 例えば、以下のようにします。

<U0020>    \x20

マッピングを表します。<U0020>スペース文字の UCS-2 シンボリック文字名と\x20ASCII のスペース文字の 16 進コード・ポイント。

コード・セット・マッピングに加えて、コンパイル済みテーブルを生成するために UCONVDEF コマンドによってディレクティブが解釈されます。 これらのディレクティブは、コード・セット・マッピング・セクションの前にすることが必要です。 これらは、<> (不等号括弧) で囲まれた以下のキーワードで構成され、1 桁目から始まり、その後に空白文字と、シンボルに割り当てられる値が続きます。

項目 説明
<code_set_name> 引用符 ("") で囲まれたコード化文字セットの名前文字セット記述ファイルが定義されている場合。
<mb_cur_max> マルチバイト文字の最大バイト数。 デフォルト値は 1 です。
<mb_cur_min> エンコードされた文字セットの文字の最小バイト数を定義する符号なしの正整数値。 この値は、 < mb_cur_max>以下です。 指定しない場合、最小数は < mb_cur_max>になります。
<escape_char> 後続の文字が特殊な方法で解釈されることを示すために使用されるエスケープ文字。 デフォルトは円記号 (¥) です。
<comment_char> 文字マップ 行の 1 桁目に置かれると、その行が無視されることを示すために使用される文字。 デフォルト文字は番号記号 (#) です。
<char_name_mask> UCS-2 記号名の形式指定子で構成される引用符付きストリング。 これは、1 個の英字の後に 4 桁の 16 進数が続くことを 示す AXXXX の値であることが必要です。 また、英字は U で、16 進数字は、その文字の UCS-2 コード・ポイントを表すことが必要です。 このマスクに基づく記号文字名の例を以下に示します。<U0020>Unicode スペース文字。
<uconv_class> コード・セットの タイプ を指定します。 次のいずれかであることが必要です。
SBCS
単一バイト・エンコード
DBCS
国に関係しない 2 バイト、単一バイト、または混合のエンコード
EBCDIC_STATEFUL
国別の 2 バイト、単一バイト、または混合のエンコード
MBCS
国に関係しないマルチバイト・エンコード

この タイプ は、作成する表のタイプを UCONVDEF に指示するために使用されます。 これも、UCS 変換方法のアルゴリズム処理の種類を示すためにテーブルに格納されます。

<locale> ロケール情報が必要な場合、使用されるデフォルト・ロケール名を 指定します。
<subchar> マルチバイト・コード・セットでのデフォルトの置換文字のエンコードを 指定します。

マッピング定義セクションは、 マップ 宣言が先行し、 文字マップ終了 宣言で終了する一連のマッピング定義行で構成されます。 空の行、および最初の列に < コメント・グラフ> を含む行は無視されます。

マッピング行のシンボリック文字名は、 < char_name_mask>で指定されたパターンに従う必要があります。ただし、関連付けられたコード・ポイントが割り当て解除されることを示す予約済みシンボル名 < 割り当てられていない>は除きます。

文字セット・マッピング定義のコメント以外の各行は、次の形式のいずれかになります。

  1. "%s %s %s/n", <symbolic-name>, <encoding>, <comments>

    次に例を示します。

    <U3004>      \x81\x57
    この形式は、1 つの記号文字名とそれに対応するエンコードを定義します。

    エンコードの部分は、次の形式の 1 つ以上の連結した 10 進数、16 進数、または 8 進数定数として表現されます。

    • "%cd%d", <escape_char>, <decimal byte value>
    • "%cx%x", <escape_char> , <hexadecimal byte value>
    • "%c%o", <escape_char>, <octal byte value>
    10 進定数は、次のように、エスケープ文字と小文字の Dが前に付いた 2 桁以上の 10 進数で表されます。\d97または\d14316 進定数は、次のように、エスケープ文字と小文字の Xが前に付いた 2 つ以上の 16 進数字で表されます。\x61または\x8f. 8 進定数は、エスケープ文字が前に付いた 2 桁以上の 8 進数字で表されます。

    各定数は、1 バイトの値を表します。 定数がマルチバイト文字の値に 連結された場合、最後の値は最低位の 8 進数を、その前の定数はそれより 高位の 8 進数を指定します。

  2. "%s. . .%s %s %s/n", <symbolic-name>, <symbolic-name>, <encoding>, <comments>

    次に例を示します。

    <U3003>...<U3006>   \x81\x56
    この形式は、記号文字名および対応するエンコードの範囲を 定義します。 この範囲は、英字の接頭部と、数字の接尾部により定義される範囲のすべての値から なる一連の記号名として解釈されます。

    リストされたエンコード値は、最初の記号名に割り当てられ、その範囲の後続の記号名は 対応する増分値を割り当てられます。 例えば、次のような行があるとします。

    <U3003>...<U3006>   \x81\x56
    上記は、次のように解釈されます。
    <U3003>      \x81\x56
    <U3004>      \x81\x57
    <U3005>      \x81\x58
    <U3006>      \x81\x59
  3. "<unassigned> %s. . .%s %s/n", <encoding>, <encoding>, <comments>

    この形式は、1 つ以上の割り当てられていない エンコードの範囲を定義します。 例えば、次のような行があるとします。

    <unassigned>   \x9b...\x9c
    上記は、次のように解釈されます。
    <unassigned>   \x9b
    <unassigned>   \x9c