IDN Punycode コンバーター
IDN を Punycode に変換して元に戻します。
1. はじめに
IDN Punycode コンバーターは、国際化ドメイン名(IDN)をPunycode形式に変換したり、その逆を行ったりできるシンプルなオンラインツールです。国際化ドメイン名には、アクセント付き文字や、中国語、アラビア語、ロシア語、ベトナム語などの言語の文字といった非ASCII文字が含まれます。ドメインネームシステム(DNS)はASCII文字のみをサポートしているため、これらのドメインはインターネット上で正しく機能するためにPunycodeにエンコードする必要があります。
このツールは、ウェブサイト運営者、開発者、SEO担当者、IT管理者が、可読なUnicodeドメイン(例:tênmiền.com)をASCII互換のPunycode表現(例:xn--tnmin-hsa0954c.com)へ迅速に変換するのに役立ちます。また、Punycodeを人間が読める形式へデコードすることも可能です。
DNSレコードの設定、ドメイン入力の検証、多言語ウェブサイトの運用、メールやSSL証明書の問題のデバッグなど、さまざまな用途において、このコンバーターは正確で標準に準拠したドメイン名フォーマットを保証します。
2. 仕組み
特殊文字や非ラテン文字を含むドメイン名は、従来のDNSシステムでは直接解釈できません。互換性を持たせるために、Punycodeと呼ばれる標準化されたエンコーディング方式でエンコードされます。このツールは、次の2種類の変換を実行します:
- Punycodeに変換 – Unicodeドメイン名をASCII互換のエンコードに変換します。
- IDNに変換 – Punycodeを元のUnicode表現にデコードします。
入力パラメータ
- コンテンツ – 変換したいドメイン名。このフィールドは必須で、空にすることはできません。
- タイプ – 変換方向:
Punycodeへ(デフォルト)IDNへ
検証ルール
- contentフィールドは空にできません。
- 変換タイプは
PunycodeへまたはIDNへのいずれかである必要があります。無効なオプションが指定された場合は、デフォルトでPunycodeへの変換が行われます。 - 不正なデータを防ぐため、処理前に入力はトリムおよびサニタイズされます。
- 各リクエストが有効であり、クロスサイトリクエストフォージェリから保護されていることを確認するためのセキュリティ検証が行われます。
出力形式
このツールは、変換後の単一のドメイン文字列を返します。選択した変換タイプに応じて:
- Punycodeに変換する場合、特殊文字が含まれていると、出力は
xn--で始まるASCII文字列になります。 - IDNに変換する場合、出力は可読なUnicodeドメインとして表示されます。
制限事項
- 無効または不正な形式のドメイン名は、空または予期しない出力になる場合があります。
- このツールはドメイン文字列のみを処理し、DNSの利用可否やドメインの登録状況は検証しません。
- エンコーディングは入力の正しいUTF-8形式に依存します。
3. このツールの使い方
- コンテンツフィールドにドメイン名を入力します。
- 希望する変換タイプを選択します:
- Punycodeに変換
- IDNに変換
- 変換ボタンをクリックします。
- 変換結果を即座に確認します。
- 出力をコピーし、DNS設定、開発環境、またはドキュメントで使用します。
4. 実用例
例1:UnicodeをPunycodeに変換
入力:
tênmiền.com
変換タイプ: Punycodeへ
出力:
xn--tnmin-hsa0954c.com
使用例:ASCIIのみのドメイン形式を必要とするDNSレコードの設定やSSL証明書の構成を行う場合。
例2:PunycodeをUnicodeに変換
入力:
xn--fsqu00a.xn--0zwm56d
変換タイプ: IDNへ
出力:
例子.测试
使用例:ログ、メールヘッダー、またはWHOISデータを確認し、Punycodeドメインの可読形式を確認したい場合。
5. 開発者向けユースケース
- DNSおよびホスティングの自動化
ユーザーが入力した国際ドメインを、DNS構成システムに保存する前に自動的にASCII形式へ変換します。
- Webアプリケーションでのフォーム検証
データベースへの挿入やAPI送信前に、国際化ドメイン名が正しくエンコードされていることを確認します。
- メールサーバーおよびSSL設定
多くのメールサーバーや証明書プロバイダーはASCIIドメイン形式を必要とします。このツールはバックエンド処理に統合して、ドメイン入力を標準化できます。
- API統合
以下のように、自分のコードに同様の機能を実装できます:
PHP例
$unicodeDomain = "tênmiền.com";
$punycode = idn_to_ascii($unicodeDomain);
echo $punycode;
JavaScript例(Node.js)
const punycode = require('punycode/');
const ascii = punycode.toASCII('tênmiền.com');
console.log(ascii);
セキュリティに関する考慮事項
- 常にドメイン入力をサニタイズしてください。
- 変換前にエンコーディング形式を検証してください。
- Unicodeドメインを表示する際はホモグラフ攻撃に注意してください。
6. よくある質問
Punycodeとは何ですか?
Punycodeは、Unicodeドメイン名をASCII形式に変換してDNSシステムで使用できるようにするエンコード方式です。
なぜ国際化ドメイン名にPunycodeが必要なのですか?
DNSインフラはASCII文字のみをサポートしているため、非ラテン文字は互換性のためにエンコードする必要があります。
ドメイン名の「xn--」は何を意味しますか?
接頭辞「xn--」は、そのドメインラベルがPunycodeでエンコードされていることを示します。
Unicode形式でドメインを登録できますか?
はい、多くのレジストラがIDNをサポートしています。ただし、内部的にはPunycode形式で保存されます。
このツールはドメインが利用可能か確認しますか?
いいえ。ドメイン形式の変換のみを行い、登録状況やDNSレコードの確認は行いません。
Punycodeは安全に使用できますか?
はい、ドメイン名エンコードの国際標準です。ただし、フィッシングやホモグラフ攻撃を避けるため、ドメインは慎重に確認してください。
人気のあるツール
文や段落内の文字の順序を逆にします。
テキストのサイズをバイト (B)、キロバイト (KB)、メガバイト (MB) で取得します。
数字を綴りで表記した形式に変換します。
指定されたテキストの文字数と単語数を数えます。
テキストを簡単に逆さにします。
通常のテキストを筆記体フォントスタイルに変換します。