Punycode変換(日本語ドメイン)

日本語.jp のような日本語ドメインを、DNS で使われる xn--wgv71a119e.jp 形式(Punycode)に変換します。逆に xn-- 形式から日本語に戻すこともできます。

Punycodeとは

DNS(ドメイン名の仕組み)は、もともと英数字とハイフンしか扱えません。そこで日本語などを含むドメイン(国際化ドメイン名、IDN)は、Punycode という方式で英数字だけの文字列に変換し、先頭に xn-- を付けて登録・通信されています。ブラウザのアドレスバーに日本語で表示されていても、内部では xn-- 形式が使われています。

日本語ドメインPunycode
日本語.jpxn--wgv71a119e.jp
お名前.comxn--t8jx73hngb.com
例え.テストxn--r8jz45g.xn--zckzah

ドメインは . で区切られたラベルごとに変換され、英数字だけのラベル(jp、com など)はそのまま残ります。

xn-- 形式が必要になる場面

  • DNS レコード(A / CNAME / TXT など)の設定
  • SSL 証明書の申請(CSR のコモンネーム)
  • Web サーバー(Apache / nginx)の ServerName・server_name
  • メールサーバーやプログラムの設定ファイル
  • 日本語ドメインに対応していない古いシステムへの入力

よくある質問

英字の大文字・全角英数字はどうなりますか?

ドメインは大文字・小文字を区別しないため、変換時に小文字に揃えます。全角の英数字も半角に正規化してから変換します。

URLのパス部分は変換されますか?

変換するのはドメイン(ホスト名)部分だけです。パスやクエリに含まれる日本語は、URLエンコード で %E3%81%82 の形式に変換します。

偽サイト(ホモグラフ攻撃)に注意とは?

キリル文字の「а」とラテン文字の「a」のように見た目がそっくりな文字を使い、本物そっくりのドメインを作る手口があります。怪しいリンクは Punycode に変換すると、xn-- で始まる別のドメインだと見分けられます。