[left] [up] [right]

idncmpコマンドの使用方法

idnkitに付属する、idncmpコマンドの使用方法について解説します。

idncmpの起動

idncmpコマンドは、2つの国際化ドメイン名をそれぞれPunycodeへ変換し、 その結果を一致比較するツールです。 idncmpを起動する際の、コマンド行の形式は次の通りです。

% idncmp [オプション...] ドメイン名1 ドメイン名2

idncmpはドメイン名1ドメイン名2をそれぞれ Punycodeへ変換して、両者を比較します。 両者が一致すれば、標準エラー出力に

matched.

と出力して、終了コード0を返して実行を終えます。 両者に違いがあった場合は、

unmatched.

と出力して、終了コード1を返して実行を終えます。 ドメイン名1ドメイン名2の片方もしくは両方が 国際化ドメイン名として不適当である場合、その理由 (例: "invalid encoding") を標準エラー出力に出力して、終了コード2を返して実行を 終えます。 メモリ不足のような内部エラーが起きた場合は、その理由を標準エラー出力 に出力して、終了コード3を返して実行を終えます。

idncmpの実行例

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のオプション

idncmpが認識するオプションは、次の通りです。 よく使われると思われるオプションに関しては、短縮形として1文字のオプション を用意してあります。

オプション 説明
-in エンコーディング 引数として与えられたドメイン名のエンコーディング名を 指定します。 以下のエンコーディング名称を認識します。
  • iconv_open()関数が認識するエンコード名
  • Punycode
  • UTF-8
  • エンコーディング別名定義ファイル (idnalias.conf) で 定義された別名
デフォルトは、環境変数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オプションを指定しても構いません。 アクション名として以下の名称を認識します。
map
マッピング
asclower
ASCIIの英大文字を小文字に変換
rtconv
PunycodeからUnicodeへの変換
prohcheck
禁止コードポイントチェック
unascheck
未割り当てコードポイントチェック
nfccheck
NFC適用済みチェック
prefcheck
ACE接頭辞チェック
hyphcheck
ハイフンチェック
combcheck
合成文字チェック
ctxjcheck
「連結制御文脈依存文字 (CONTEXTJ)」チェック
ctxocheck
ドメイン名登録プロトコル (registration protocol) 用の 「その他制御文脈依存文字 (CONTEXTO)」チェック
ctxolitecheck
ドメイン名参照プロトコル (lookup protocol) 用の 「その他制御文脈依存文字 (CONTEXTO)」チェック
bidicheck
BIDI (bidirectional display; 双方向表示) チェック
idnconv
UnicodeからPunycodeへの変換
lencheck
ラベル長チェック
rtcheck
ラウンドトリップチェック
-localcheck ファイル 追加で、各コードポイントに対する「ローカルチェック」 を行います。 詳しくは、 「セットファイル」 を参照して下さい。
-e ファイル
-quiet 実行結果を出力しません。 結果は、終了コードから判断して下さい。
-q
-test 現在のオプション指定と環境変数等の設定状況で実行すると、 「現在の言語」とローカルエンコーディングが何になるのかを表示し、 終了します。
-t
-version バージョン情報を表示して実行を終了します。
-v
-help ヘルプメッセージを表示して終了します。
-h

[left] [up] [right]