geniconvtbl - コード変換テーブルの生成
geniconvtbl [-fnq] [-p preprocessor] [-W arg] [-Dname] [-Dname=def] [-Idirectory] [-Uname] [infile]...
geniconvtbl [-fnq] -c -F [infile]...
geniconvtbl [-fnq] -c -T [infile]...
geniconvtbl ユーティリティーは、フラットテキストファイルに定義されたコード変換規則を受け入れて、コード変換バイナリテーブルファイルを書き込みます。このファイルを使用して、ユーザー定義の iconv コード変換、cconv コード変換、またはその両方をサポートできます (iconv コード変換の詳細は、iconv(1)、iconv(3C)、および cconv(3C) を参照)。
入力ファイルおよび出力ファイルには 2 つの異なる形式を使用できます。
–c オプションが指定された場合、geniconvtbl は、geniconvtbl-cconv(5) で説明されている形式の 1 つ以上の入力ファイルまたは標準入力ストリームを受け入れ、cconv および iconv コード変換用の cconv バイナリテーブルファイルを生成します。
iconv バイナリテーブルが基本的にバッファーベースの iconv コード変換のみに使用されるのとは異なり、cconv バイナリテーブルは文字単位のシーケンスに基づいており、iconv コード変換と cconv コード変換の両方に使用されます。
サポートしているオプションは、次のとおりです。
cconv コード変換テーブルを生成します。
出力ファイルが存在する場合は、出力ファイルを上書きします。
–c オプションとともに使用された場合、UTF-32 からコードセットへの方向の変換であることを示します。–c オプションが指定されていない場合、このオプションは無視され、警告メッセージが発行されます。
出力ファイルを生成しません。これは、入力ファイルの内容を確認する場合に役立ちます。
デフォルトのプロプロセッサ /usr/lib/cpp の代わりに、指定された preprocessor を使用します。
非出力オプション。警告メッセージとエラーメッセージを抑制します。
–c オプションとともに使用された場合、コードセットから UTF-32 への方向の変換であることを示します。–c オプションが指定されていない場合、このオプションは無視され、警告メッセージが発行されます。
引数 arg をプリプロセッサに渡します。このオプションが複数回指定されていると、すべての引数がプリプロセッサに渡されます。
geniconvtbl はこれらのオプションを認識して、引数とともにプリプロセッサに渡します。
次のオペランドを指定できます。
入力ファイルのパス名。入力ファイルが指定されていない場合、geniconvtbl は標準入力ストリームから読み込みます。ユーザーは、必要に応じて複数の入力ファイルを指定できます。
標準入力ストリームから入力が行われる場合、geniconvtbl は出力を標準出力ストリームに書き込みます。複数の入力ファイルが指定されている場合、geniconvtbl は各入力ファイルから読み込み、対応する出力ファイルに書き込みます。各出力ファイルの名前は、対応する入力ファイルに .bt を追加したものか、. 文字で始まる接尾辞を .bt で置き換えたものになります。
–c オプションを使用せずに生成した iconv バイナリテーブルファイルを iconv(1) および iconv(3C) 用のコード変換モジュールとして使用するには、ファイルを次のディレクトリに移動する必要があります。
/usr/lib/iconv/geniconvtbl/binarytables/
そのディレクトリ内のファイル名は、先頭から 1 文字以上の印字可能な ASCII 文字 (fromcode 名)、パーセント文字 (%)、1 文字以上の印字可能な ASCII 文字 (tocode 名)、接尾辞 .bt の順にする必要があります。fromcode 名と tocode 名は、iconv(1) および iconv_open(3C) の実行時に iconv コード変換の特定に使用されます。
–c オプションを使用して生成した cconv バイナリテーブルファイルを使用するには、ファイルを次のディレクトリに移動する必要があります。
/usr/lib/iconv/
cconv バイナリテーブルファイルはペアになっています。1 つは、UTF-32 からコードセットへの変換を提供するもので、「–c –F」オプションを使用して次の命名規則で生成されます。
UTF-32+<codeset>.bt
もう 1 つは、コードセットから UTF-32 への変換を提供するもので、「–c –T」オプションを使用して次の命名規則で生成されます。
<codeset>+UTF-32.bt
ここで、<codeset> は、コードセット名を表す 1 文字以上の印字可能な ASCII 文字です。
次の例では、出力ファイル名 convertA2B.bt のコード変換バイナリテーブルを生成します。
example% geniconvtbl convertA2B使用例 2 複数の iconv コード変換バイナリテーブルを生成する
次の例では、出力ファイルが test1.bt と test2.bt の 2 つのコード変換バイナリテーブルを生成します。
example% geniconvtbl test1 test2使用例 3 別のプリプロセッサを使用する
次の例では、指定されたプリプロセッサが入力ファイルを処理したあとで、コード変換バイナリテーブルを生成します。
example% geniconvtbl -p /opt/SUNWspro/bin/cc -W -E convertB2A使用例 4 iconv 用のバイナリテーブルを配置する
上記の最初の例で作成したバイナリテーブルを「fromcode」ABC から「tocode」DEF への変換のエンジンとして使用するには、スーパーユーザーになり、次の方法で名前の変更および配置を行います。
example# mv convertA2B.bt \ /usr/lib/iconv/geniconvtbl/binarytables/ABC%DEF.bt使用例 5 ISO8859-1 を変更して UTF-8 コード変換に使用する
コード変換を定義する geniconvtbl ソースファイルを記述します。たとえば、/usr/lib/iconv/geniconvtbl/srcs/ISO8859-1_to_UTF-8.src を自分のディレクトリにコピーして、ソースファイルに必要な変更を加えることができます。変更が完了したら、バイナリテーブルを生成します。
example% geniconvtbl ISO8859-1_to_UTF-8.src
スーパーユーザーになり、一意の名前を持つ生成されたバイナリテーブルをシステムディレクトリに配置して、iconv_open(3C) がこのバイナリテーブルを検出できるようにします。
example su Password: example% cp ISO8859-1_to_UTF-8.bt \ /usr/lib/iconv/geniconvtbl/binarytables/my-iso-8859-1%utf-8.bt
その後、iconv コード変換を実行できます。例:
example% iconv -f my-iso-8859-1 -t utf-8 testfile.txt使用例 6 cconv コード変換バイナリテーブルを生成する
次の例では、出力ファイル名 UTF-32+my8859-11.bt のコード変換バイナリテーブルを生成します。
example% geniconvtbl -c -F UTF-32+my8859-11.TXT
次の例では、出力ファイル名 my8859-11+UTF-32.bt のコード変換バイナリテーブルを生成します。
example% geniconvtbl -c -T my8859-11+UTF-32.TXT使用例 7 cconv 用のバイナリテーブルを配置する
例 6 で作成した cconv バイナリテーブルを cconv および iconv コード変換に使用するには、スーパーユーザーになり、ファイルを /usr/lib/iconv の下に置きます。
example# mv my8859-11+UTF-32.bt UTF-32+my8859-11.bt \ /usr/lib/iconv/
その後、iconv および cconv コード変換を実行できます。UTF-32 と my8859-11 の間だけでなく、my8859-11 とほかのコードセット名の間でも、そのコードセット名に対応する cconv バイナリテーブルファイルがシステムにインストールされていれば変換を実行できます。
geniconvtbl の実行に影響を与える環境変数 LANG および LC_CTYPE についての詳細は、environ(7) を参照してください。
次の終了ステータスが返されます。
エラーは発生せず、出力ファイルは正常に作成されました。
コマンド行オプションは現在使用されていないか、不明のコマンド行オプションが指定されました。
無効な入力ファイルまたは出力ファイルが指定されました。
現在、入力ファイルの変換規則が正しく定義されていません。
入力ファイルの変換規則制限に達しました。geniconvtbl(5) の「注意事項」の項を参照してください。
これ以上のシステムリソースエラーはありません。
内部エラー。
属性についての詳細は、マニュアルページの attributes(7) を参照してください。
|
cpp(1), iconv(1), localedef(1), cconv(3C), cconv_close(3C), cconv_open(3C), cconvctl(3C), iconv(3C), iconv_close(3C), iconv_open(3C), iconvctl(3C). geniconvtbl(5), geniconvtbl-cconv(5), attributes(7), environ(7)
開発者向け国際化対応言語環境利用ガイド
生成され、正しく配置された出力ファイル/usr/lib/iconv/*.bt および /usr/lib/iconv/geniconvtbl/binarytables/*.bt は、32 ビットと 64 ビットの両方の環境で使用されます。
Solaris のインストールの一部として /usr/lib/iconv ディレクトリに配置されたファイルを上書きした場合、ユーザー自身のモジュールではシステム更新時に上書きされます。