Unicodeドメイン ↔ Punycode変換ツール (IDN / xn–)

Unicodeドメイン、国際化ドメイン名(IDN)、絵文字ドメインPunycode(xn--形式)へ変換したり、xn--形式のドメインを元のUnicodeドメインへ戻すことができます。

DNS設定や一部のサーバー環境では、Punycode形式が必要になることがあります。このツールはRFC3492仕様に基づいて正確に変換を行います。

複数のドメインをまとめて貼り付け、一括変換することも可能です。変換処理はブラウザ内で実行され、入力データがサーバーへ送信されることはありません。

ドメイン変換後にURLパラメータを安全にエンコードしたい場合は、URLエンコード・デコードツールも利用できます。

VivoldiのPunycode変換ツールで、韓国語、漢字などの多言語ドメインをサーバー用‘Punycode’形式に変換、または逆変換する3Dビジュアル | Punycode変換, 国際化ドメイン, 多言語ドメイン

変換結果:

変換結果:

Unicode変換が必要になるケース

Webサーバーの設定、SSL証明書の登録、DNSレコードの管理では、Punycode形式が必要になる場合があります。

ApacheNginxなどのWebサーバーでは、Unicodeドメインを内部的にPunycode形式で処理することが一般的です。
プログラミング、HTTPヘッダー、API通信、ログ解析などのシステム処理でもxn--形式のドメインが広く利用されています。

Unicodeドメインと絵文字ドメインの変換方式の違い

Unicodeドメインと絵文字ドメインでは、内部的な変換方式が異なります。Unicode文字を含むドメインラベルは、ASCII互換の文字列へ変換され、xn--接頭辞と組み合わせて処理されます。

絵文字ドメインもUnicodeベースでエンコードされ、Punycode形式のASCII文字列として保存されます。
どちらの変換方式もRFC3492標準に基づいて処理されます。

Punycode形式の構造とxn–接頭辞の役割

Punycodeへ変換されたドメインラベルは、必ずxn--接頭辞で始まります。
この接頭辞は、そのラベルがPunycodeでエンコードされた国際化ドメインであることをDNSシステムへ示す識別子です。
接頭辞の後ろに続く文字列は、UnicodeドメインをASCII互換文字へ変換した結果です。

各ドメインラベルは個別にエンコードされます。たとえばunicode.domain.comのようなドメインでは、必要なラベルのみが個別に変換されます。
comnetなどASCII文字だけで構成されたラベルは変換されず、そのまま保持されます。

複数ドメインをまとめて変換したい場合

複数の国際化ドメインを一度に変換したいケースがあります。このツールでは、ドメインを行単位で入力することで一括変換できます。

変換結果はまとめてコピーできるため、サーバー設定ファイルやスプレッドシートへそのまま貼り付け可能です。
ドメイン移行、サーバー移転、多言語DNS設定などの作業効率化にも役立ちます。

ブラウザはUnicodeドメインをどのように処理するのか?

ユーザーがブラウザのアドレスバーにUnicodeドメインを入力すると、ブラウザは自動的にPunycode(xn--形式)へ変換してDNSサーバーへ問い合わせを行います。

DNS応答で受け取ったPunycodeは再びUnicodeドメインへ復元され、アドレスバーに表示されます。この処理はバックグラウンドで自動的に行われるため、通常ユーザーが意識することはありません。
ただし、サーバー設定ファイル、SSL証明書登録、アプリケーション開発などでは、Punycode形式を直接扱う必要がある場合があります。

UnicodeドメインをPunycodeへ変換したり、変換結果を確認したい場合にこのツールを利用できます。

よくあるご質問

Punycodeは、日本語、中国語、韓国語、絵文字などのUnicode文字を含むドメイン名を、英数字とハイフンのみで構成されたASCII互換文字列へ変換する国際標準エンコード方式です。

RFC3492で定義されており、変換後の文字列は必ずxn--で始まります。
この形式により、ASCIIのみをサポートするDNSサーバーやWebサーバーでも国際化ドメイン名(IDN)を問題なく扱うことができます。

上部タブから「Unicodeドメイン → Punycode変換」を選択し、入力欄にドメインを1行ずつ入力して変換ボタンを押します。

複数のドメインをまとめて入力すると一括変換されます。変換結果は下部の結果エリアに表示され、クリップボードへコピーボタンでまとめてコピーできます。

はい、可能です。Punycodeは多言語文字だけでなく、絵文字もASCII互換文字列へ変換できる国際標準です。

ただし、一部のドメイン登録事業者では絵文字ドメインを正式サポートしていない場合があります。登録前に対応状況を確認することをおすすめします。
変換自体は問題なく行えます。

主要なプログラミング言語には、Punycode変換を行うための標準ライブラリやAPIが用意されています。

  • Java: java.net.IDNクラスのtoASCII()toUnicode()メソッドを使用します。
  • Python: .encode('idna')またはencodings.idnaモジュールを使用します。
  • JavaScript: URL APIが自動的にPunycode変換を処理し、必要に応じてpunycodeパッケージを利用することもできます。

コードへ組み込む前に、変換結果の確認や検証を行う用途としてこのツールを利用できます。

以下のようなケースでは、変換結果が想定と異なる場合があるため注意が必要です。

  • ラベル単位で変換される: Punycodeはドメイン全体ではなく、ドットで区切られた各ラベル単位で変換されます。unicode.domain.comではcomは変換されません。
  • 大文字・小文字の正規化: 変換前にドメインを小文字へ統一することが推奨されます。一般的には小文字形式が使用されます。
  • 前後の空白: 入力値に余分な空白が含まれていると変換エラーの原因になる場合があります。このツールの「前後空白削除」オプションを有効にすると自動的に処理されます。

「Punycode → Unicodeドメイン変換」タブで、変換後のPunycodeを再入力すると元のUnicodeドメインへ復元できます。

復元された値が最初に入力したドメインと一致していれば、変換は正しく行われています。DNS設定やドメイン登録前に一度確認しておくと安心です。