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つずつ入力します。URLのままでもかまいません。変換されるのはホストの部分だけです。
- 方向を選ぶか、「自動」のままにして行ごとに判定させます。
- 行ごとに結果、またはエラーの理由を確認します。
- 成功した結果を、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--のラベルを含む行はデコードし、それ以外はエンコードします。方向を選べば、どちらか一方に固定できます。
ドメインを照会したり、どこかに送信したりしますか?
いいえ。変換はブラウザー内で行い、そのドメインに接続することはありません。