ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
国際化対応言語環境の利用ガイド Oracle Solaris 11 Information Library (日本語) |
国際化ドメイン名 (IDN) によって、ホスト名およびドメイン名として英語以外のネイティブ言語を使用できます。英語以外のホスト名およびドメイン名を使用するには、RFC 3490 に規定されているリゾルバルーチンに名前を送信する前に、これらの名前を ASCII 互換エンコーディング (ACE) でエンコードされた名前に変換します。システム管理アプリケーションが IDN をサポートしていない場合、システム管理者はシステムのファイルおよびアプリケーションにも ACE 名を使用する必要があります。
詳細は、RFC 3490「アプリケーションにおけるドメイン名の国際化 (IDNA)」を参照してください。
図 6-1 Firefox ブラウザでの IDN の例
注 - 現在、Oracle Solaris 11 でサポートされている IDN は IDNA2003 であり、最新の標準 IDNA2008 はサポートされていません。
Oracle Solaris 11 は、ライブラリと関連のユーティリティーを含む、GNU IDN ライブラリおよび JPNIC idnkit ライブラリという 2 組の IDN 実装を提供しています。いくつかのアプリケーションには、独自の IDN 実装を持つものもあります。たとえば、Firefox と Thunderbird には、Necko というネットワークプロトコルコンポーネントに独自の IDN サービスがあります。
GNU-Libidn は、GNU Lesser General Public License (LGPL) バージョン 2.1 以降に基づいてライセンス供与された、GNU プロジェクトです。GNU-Libidn は、さまざまな GNU/Linux ディストリビューションで幅広く採用されています。デスクトップ、および pidgin(1) などの GNOME アプリケーションは、通常は IDN をサポートするために GNU-Libidn を利用します。
idn(1) は、国際化ドメイン名のライブラリへのコマンド行インタフェースです。次の例は、UTF-8 のホスト名を ACE エンコーディングに変換します。結果の URL http://xn-fsqu00a.xn--0zwm56d は、ACE でエンコードされた http://例子.测试 に相当するものとして使用できます。
$ idn --quiet -a 例子.测试 xn-fsqu00a.xn-0zwm56d
GNU-Libidn は、library/libidn パッケージとしてインストールできます。オプションについての詳細は、idn(1) のマニュアルページを参照してください。
idnkit ライブラリは、BSD 系のライセンスを持つオープンソースの IDN 実装です。専用の idnkit 変換ユーティリティー idnconv(1) では、さまざまなオプションを使った IDN 変換が可能です。変換の詳細を制御するためのオプションについての詳細は、idnconv(1) のマニュアルページを参照してください。
Oracle Solaris 11 は、libidnkit の変換ルーチンを利用することによって、iconv(3C) インタフェースを介した IDN 変換もサポートしています。次の表に示されているように、iconv(1) ユーティリティーは、ACE および UTF-8 との間の変換にも使用できます。
表 6-1 iconv IDN コード変換
|
ACE は fromcode または tocode 名であり、RFC 3490 で定義されている ASCII 互換エンコーディングを参照するために、iconv コード変換で使用されます。この変換は STD3 ASCII のルールを使用します。割り当てられていない文字は許可されません。通常、ACE はホスト名またはドメイン名をマシンに格納または提供するために使用されます。
ACE-ALLOW-UNASSIGNED は、ACE-ALLOW-UNASSIGNED が割り当てられていない文字を許可する以外は、ACE と同じ処理を実行します。通常、ACE-ALLOW-UNASSIGNED は照会のために使用されます。
たとえば、次のコマンドを実行すると、テキストファイルからの入力が ACE から UTF-8 の文字セットに変換されます。
$ iconv -f ACE -t UTF-8 hostnames.txt
JPNIC idnkit ライブラリは、library/idnkit パッケージとしてインストール可能です。idnkit ライブラリおよび iconv コード変換についての詳細は、libidnkit(3LIB) および iconv_en_US.UTF-8(5) のマニュアルページを参照してください。