Punycode変換
Unicodeドメイン ↔ Punycode変換ツール (IDN / xn–)
国際化ドメイン名(IDN)をPunycode(xn--)に変換したり、Unicodeに戻したりできます。
ドメインまたはURLを1行に1件入力してください。変換はVivoldiのサーバーで行い、変換できなかった行は別に表示します。結果はコピーするか、TXTファイルとして保存できます。
クエリ文字列やパラメーター値のエンコードには、URLエンコード・デコードツールをご利用ください。
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:
URLAPIが自動的にPunycode変換を処理し、必要に応じてpunycodeパッケージを利用することもできます。
コードへ組み込む前に、変換結果の確認や検証を行う用途としてこのツールを利用できます。
以下のようなケースでは、変換結果が想定と異なる場合があるため注意が必要です。
- ラベル単位で変換される: Punycodeはドメイン全体ではなく、ドットで区切られた各ラベル単位で変換されます。
unicode.domain.comではcomは変換されません。 - 大文字・小文字の正規化: 変換前にドメインを小文字へ統一することが推奨されます。一般的には小文字形式が使用されます。
- 前後の空白: 入力値に余分な空白が含まれていると変換エラーの原因になる場合があります。このツールの「前後空白削除」オプションを有効にすると自動的に処理されます。
変換結果を反対方向のタブに貼り付け、ホスト名が元に戻ることを確認してください。faß.de や xn--fa-hia.de など、双方向に変換できないアドレスはエラーの一覧に表示されます。