国際化対応言語環境の利用ガイド

国際化ドメイン名 (IDN) のサポート

国際化ドメイン名 (IDN) によって、ホスト名およびドメイン名に英語以外の言語を使用できます。英語以外のホスト名およびドメイン名を使用するには、RFC 3490 で指定されるリゾルバルーチンに名前を送信する前に、ASCII 互換エンコーディング (ACE) 名に変換します。システム管理アプリケーションが IDN をサポートしない場合、システム管理者はシステムのファイルおよびアプリケーションにも ACE 名を使用する必要があります。

RFC 3490「アプリケーションにおける国際化ドメイン名 (IDNA)」を参照してください。

libidnkit(3EXT) の国際化ドメイン名の API は、UTF-8 またはアプリケーションロケールのコードセットと ACE の便利な変換機能を提供します。idn_decodename2(3EXT) を使用する場合、入力引数のコードセットとして任意のコードセット名を指定することもできます。

図 2–1 IDN から ACE への変換

図は、非英語名の ASCII 互換エンコード文字列への変換を示します

図 2–2 ACE から IDN への変換

図は、ASCII 互換エンコード文字列の非英語名への変換を示します

次の表は、使用可能な双方向の iconv コード変換です。

表 2–16 iconv コード変換

元のコード 

変換後のコード 

ACE 

ACE-ALLOW-UNASSIGNED 

UTF-8 

UTF-8 

UTF-8 

UTF-8 

ACE 

ACE-ALLOW-UNASSIGNED 

ACE と ACE-ALLOW-UNASSIGNED の iconv コード変換名には次の意味があります。

次の例は、hostnames.txt ファイルからの入力による ACE から UTF-8 への変換です。出力は標準出力に送られます。

system% iconv -f ACE -t UTF-8 hostnames.txt

専用の IDN 変換ユーティリティ idnconv(1) では、さまざまなオプションとともに IDN 変換が可能です。オプションによって変換の詳細を制御できます。

IDN、変換ルーチン、および iconv コード変換については、libidnkit(3LIB)idn_decodename(3EXT)idn_decodename2(3EXT)idn_encodename(3EXT)、および iconv_en_US.UTF-8(5) のマニュアルページを参照してください。