Punycode変換

Unicodeドメイン

変換結果

Punycode

変換結果

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

国際化ドメイン名(IDN)をPunycode(xn--)に変換したり、Unicodeに戻したりできます。

ドメインまたはURLを1行に1件入力してください。変換はVivoldiのサーバーで行い、変換できなかった行は別に表示します。結果はコピーするか、TXTファイルとして保存できます。

クエリ文字列やパラメーター値のエンコードには、URLエンコード・デコードツールをご利用ください。

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

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

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

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

変換できるドメイン名

韓国語・中国語・日本語など、対応する文字を含むドメイン名を変換できます。一部の絵文字など、変換できない文字が含まれる場合は、その行にエラーが表示されます。

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

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

各ドメインラベルは個別にエンコードされます。たとえばunicode.domain.comのようなドメインでは、必要なラベルのみが個別に変換されます。
comやnetなど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変換を行うための標準ライブラリやAPIが用意されています。

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

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

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

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

変換結果を反対方向のタブに貼り付け、ホスト名が元に戻ることを確認してください。faß.de や xn--fa-hia.de など、双方向に変換できないアドレスはエラーの一覧に表示されます。