ブログ
日本語

Punycode 変換 — 日本語ドメインとxn--を相互変換

Unicodeのドメイン名とxn--形式のPunycodeを相互に変換するツール

ブラウザー内で処理・アップロード不要

URLのままでも使えます。変換されるのはホストの部分だけです。例をお手元のドメインに置き換えてください。

方向

Unicode → xn--の変換にはブラウザー自身のURLパーサー(UTS #46のIDNA処理)を使うので、結果はブラウザーが実際に接続するアドレスです。大文字や全角文字はそろえられ、分解された文字は合成されます。xn-- → Unicodeの変換ではRFC 3492のPunycodeをデコードし、元に戻すと同じ名前になるかを確認します。処理はすべてブラウザー内で行います。

Punycode 変換ツールとは

国際化ドメイン名をDNSで使われるxn–の形に変換し、xn–の名前を読める文字に戻すツールです。ブラウザーのアドレスバーには日本語.jpやbücher.exampleのような名前が表示されますが、実際にはxn–wgv71a119e.jpやxn–bcher-kva.exampleに接続しています。サーバーの設定、DNSレコード、証明書の申請フォームでASCII版が必要なときや、ログに出てきたxn–の名前を読みたいときに使ってください。

使い方

  1. ドメインを1行に1つずつ入力します。URLのままでもかまいません。変換されるのはホストの部分だけです。
  2. 方向を選ぶか、「自動」のままにして行ごとに判定させます。
  3. 行ごとに結果、またはエラーの理由を確認します。
  4. 成功した結果を、1行に1つずつまとめてコピーします。

仕組み

  • Unicode → xn–の変換にはブラウザー自身のURLパーサーを使うので、出力はブラウザーが実際に接続する名前とまったく同じです。UTS #46(IDNAの互換処理)を適用し、大文字小文字や全角半角をそろえて正規化した後、ASCII以外を含むラベルごとにRFC 3492のPunycodeに変換します。
  • xn– → Unicodeの変換では、xn–の各ラベルをRFC 3492でデコードし、その結果をもう一度エンコードすると同じ名前になるかを確認します。ならない場合、その行は無効と表示します。
  • パス、ポート、ユーザー情報、末尾のドットは先に取り除きます。ドメイン全体は253文字まで扱えます。

例

入力 結果
日本語.jp xn–wgv71a119e.jp
xn–wgv71a119e.jp 日本語.jp
bücher.example xn–bcher-kva.example
https://bücher.example/path xn–bcher-kva.example
EXAMPLE.com example.com
a b.com エラー:スペースは使えません

日本語ドメインを登録したら、Webサーバーのサーバー名や証明書の申請にはxn–の形を使い、名刺や広告には読みやすい形を使いましょう。一覧をまとめて貼り付ければ、たくさんのドメインを一度に変換して、結果をまとめてコピーできます。

よくある質問

Punycodeとは何ですか?

DNSは英字・数字・ハイフンしか扱えないため、日、ü、한のような文字を含むドメインはPunycode(RFC 3492)でエンコードし、先頭にxn--を付けます。日本語.jpはxn--wgv71a119e.jpに、bücher.exampleはxn--bcher-kva.exampleになります。

xn--の形はどんなときに必要ですか?

DNSレコード、Webサーバーの設定、TLS証明書の申請、メールの設定などでは、たいていASCIIの形が求められます。逆方向の変換は、ログやヘッダーにxn--の名前が出てきたときに役立ちます。

大文字や全角文字はどうなりますか?

エンコードの前に、ブラウザーと同じ方法(UTS #46)で小文字・半角にそろえ、分解された文字は合成します。ドメイン名に使えないスペースや記号はエラーになります。

変換の方向はどのように自動で決まりますか?

1行ずつ個別に判定します。ASCIIだけでできていてxn--のラベルを含む行はデコードし、それ以外はエンコードします。方向を選べば、どちらか一方に固定できます。

ドメインを照会したり、どこかに送信したりしますか?

いいえ。変換はブラウザー内で行い、そのドメインに接続することはありません。

ほしいツールはありますか?