Go to main content

マニュアルページ セクション 1: ユーザーコマンド

印刷ビューの終了

更新: 2022年7月27日
 
 

geniconvtbl(1)

名前

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 コード変換の両方に使用されます。

オプション

サポートしているオプションは、次のとおりです。

–c

cconv コード変換テーブルを生成します。

–f

出力ファイルが存在する場合は、出力ファイルを上書きします。

–F

–c オプションとともに使用された場合、UTF-32 からコードセットへの方向の変換であることを示します。–c オプションが指定されていない場合、このオプションは無視され、警告メッセージが発行されます。

–n

出力ファイルを生成しません。これは、入力ファイルの内容を確認する場合に役立ちます。

–p preprocessor

デフォルトのプロプロセッサ /usr/lib/cpp の代わりに、指定された preprocessor を使用します。

–q

非出力オプション。警告メッセージとエラーメッセージを抑制します。

–T

–c オプションとともに使用された場合、コードセットから UTF-32 への方向の変換であることを示します。–c オプションが指定されていない場合、このオプションは無視され、警告メッセージが発行されます。

–W arg

引数 arg をプリプロセッサに渡します。このオプションが複数回指定されていると、すべての引数がプリプロセッサに渡されます。

–Dname
–Dname=def
–Idirectory
–Uname

geniconvtbl はこれらのオプションを認識して、引数とともにプリプロセッサに渡します。

オペランド

次のオペランドを指定できます。

infile

入力ファイルのパス名。入力ファイルが指定されていない場合、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

where the <codeset> should be one or more of printable ASCII characters denoting the codeset name.

使用例 1 iconv コード変換バイナリテーブルを生成する

次の例では、出力ファイル名 convertA2B.bt のコード変換バイナリテーブルを生成します。

example% geniconvtbl convertA2B
使用例 2 複数の iconv コード変換バイナリテーブルを生成する

次の例では、出力ファイルが test1.bttest2.bt の 2 つのコード変換バイナリテーブルを生成します。

example% geniconvtbl test1 test2
使用例 3 Using another preprocessor

次の例では、指定されたプリプロセッサが入力ファイルを処理したあとで、コード変換バイナリテーブルを生成します。

example% geniconvtbl -p /opt/SUNWspro/bin/cc -W -E convertB2A
使用例 4 iconv 用のバイナリテーブルを配置する

To use the binary table created in the first example above as the engine of the conversion 'fromcode' ABC to 'tocode' DEF, install it as:

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

With appropriate privileges, place the generated binary table with a unique name at the system directory where iconv_open(3C) can find the binary table:

example# cp ISO8859-1_to_UTF-8.bt \
     /usr/lib/iconv/geniconvtbl/binarytables/my-iso-8859-1%utf-8.bt

その後、iconv コード変換を実行できます。For instance:

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 用のバイナリテーブルを配置する

To use the cconv binary tables created in the Example 6 for cconv and iconv code conversions, place the files under /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) を参照してください。

終了ステータス

次の終了ステータスが返されます。

0

エラーは発生せず、出力ファイルは正常に作成されました。

1

コマンド行オプションは現在使用されていないか、不明のコマンド行オプションが指定されました。

2

無効な入力ファイルまたは出力ファイルが指定されました。

3

現在、入力ファイルの変換規則が正しく定義されていません。

4

入力ファイルの変換規則制限に達しました。geniconvtbl(5) の「ノート」の項を参照してください。

5

これ以上のシステムリソースエラーはありません。

6

Internal error.

ファイル

/usr/lib/iconv/*.bt

iconv(1), cconv(3C)、および iconv(3C) 用の cconv コード変換バイナリテーブルファイル

/usr/lib/iconv/geniconvtbl/binarytables/*.bt

iconv(1) および iconv(3C) 用の iconv コード変換バイナリテーブルファイル

属性

属性についての詳細は、マニュアルページの attributes(7) を参照してください。

属性タイプ
属性値
使用条件
system/core-os

関連項目

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 ディレクトリに配置されたファイルを上書きした場合、ユーザー自身のモジュールではシステム更新時に上書きされます。