idnkitに付属する、idncmpコマンドの使用方法について解説します。
idncmpコマンドは、2つの国際化ドメイン名をそれぞれPunycodeへ変換し、 その結果を一致比較するツールです。 idncmpを起動する際の、コマンド行の形式は次の通りです。
% idncmp [オプション...] ドメイン名1 ドメイン名2
idncmpはドメイン名1とドメイン名2をそれぞれ Punycodeへ変換して、両者を比較します。 両者が一致すれば、標準エラー出力に
matched.
と出力して、終了コード0を返して実行を終えます。 両者に違いがあった場合は、
unmatched.
と出力して、終了コード1を返して実行を終えます。 ドメイン名1とドメイン名2の片方もしくは両方が 国際化ドメイン名として不適当である場合、その理由 (例: "invalid encoding") を標準エラー出力に出力して、終了コード2を返して実行を 終えます。 メモリ不足のような内部エラーが起きた場合は、その理由を標準エラー出力 に出力して、終了コード3を返して実行を終えます。
idncmpの実行例をいくつか示します。
% idncmp "привет.мир" "xn--b1agh1afp.xn--h1ahn" matched.
引数として渡されたドメイン名は同じではありませんが、両者を Punycode変換した結果は同じですので、「一致した (matched)」と 判定されます。
引数として渡されるドメイン名が何というエンコーディングで表現されて
いるかはidncmpが自動判定しますが、うまくいかない場合は-in
オプションを使用することで強制的に指定することができます。
以下の例では、KOI8-rを指定しています。
% idncmp -in KOI8-r "привет.мир" "xn--b1agh1afp.xn--h1ahn" matched.
引数に指定するドメイン名は、従来のドメイン名であっても構いません。 両者が一致すれば、国際化ドメイン名同様「一致した」ものと扱われます。
% idncmp hello HELLO matched.
idncmpが認識するオプションは、次の通りです。 よく使われると思われるオプションに関しては、短縮形として1文字のオプション を用意してあります。
オプション | 説明 |
---|---|
-in エンコーディング
| 引数として与えられたドメイン名のエンコーディング名を
指定します。
以下のエンコーディング名称を認識します。
IDN_LOCAL_CODESET がセットされている
場合はその値となり、セットされていなければロケール情報から取得した
エンコーディングとなります
(「ローカルエンコーディング」
参照)。
|
-i エンコーディング
| |
-conf パス
| idnkitの設定ファイルのパス名を指定します
(デフォルトで読み込まれる設定ファイルのパスは、
「設定ファイルについて」
を参照のこと)。
-noconf ないし-C オプションと一緒に指定
した場合はそちらが優先され、設定ファイルは読み込まれません。
|
-c パス
| |
-noconf
| idnkitの設定ファイルを読み込まないようにします。 |
-C
| |
-registration
| IDNA2008の「ドメイン名登録プロトコル (registration protocol)」 を使用します。 |
-g
| |
-lookup (デフォルト)
| IDNA2008の「ドメイン名参照プロトコル (lookup protocol)」 を使用します。 ドメイン名登録プロトコルでは行われる「ハイフンチェック」が省略され、 「その他文脈依存文字 (CONTEXTO)」のチェックも簡素化されます。 詳しくは、「idnkitの変換処理の詳細」を 参照して下さい。 デフォルトでは、こちらのプロトコルを使用します。 |
-l (デフォルト)
| |
-nomap
| マッピング処理を行いません。
「-skip map 」と等価です。
|
-M
| |
-skip アクション名,...
| アクション名で指定されたエンコード/デコード処理工程
の実行を省略します。
", " で区切って複数のアクションを指定することが可能です。
また、複数回-skip オプションを指定しても構いません。
アクション名として以下の名称を認識します。
|
-localcheck ファイル
| 追加で、各コードポイントに対する「ローカルチェック」 を行います。 詳しくは、 「セットファイル」 を参照して下さい。 |
-e ファイル
| |
-quiet
| 実行結果を出力しません。 結果は、終了コードから判断して下さい。 |
-q
| |
-test
| 現在のオプション指定と環境変数等の設定状況で実行すると、 「現在の言語」とローカルエンコーディングが何になるのかを表示し、 終了します。 |
-t
| |
-version
| バージョン情報を表示して実行を終了します。 |
-v
| |
-help
| ヘルプメッセージを表示して終了します。 |
-h
|