IDNAエンコーダ
münchen.example.comはxn--mnchen-3ya.example.comになります。アクセントや他の文字を含むラベルだけがxn--形式になり、ASCIIだけのラベルはそのままです。ログやメールのヘッダーにあるホスト名を読める形に戻すこともできます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- münchen.example.com
- 計算モード
- Encode
- 結果
- xn--mnchen-3ya.example.com
- ASCIIコード
- xn--mnchen-3ya.example.com
- Unicodeコードポイント
- münchen.example.com
- ラベル数
- 3
国際化ドメイン名により、ブランド・都市名・人名を母語の文字で公開インターネット上に示せますが、ドメインネームシステムはラベルをASCII互換の符号化として運び続けます。IDNA(Internationalized Domain Names in Applications)は各UnicodeのU-labelをxn--で始まるA-label(RFC 3492 Punycode)へ写像し、逆方向に戻して運用者が意図した名前を再び読めるようにします。純ASCIIラベルはそのまま通過し、都市ラベルと古典的TLDのような混在名はラベル単位で処理されます。
Unicodeホスト名をIDNA ASCIIへ符号化(ToASCII / xn--)
エンジンはホスト名をドットで分割し、各ラベルをロケール非依存に折りたたみ、ラベルを独立処理するため、左が非ASCII・右がASCIIの混在名でも全体を単一の符号化器に押し通さず変換できます。純ASCIIのLDHラベルはxn--接頭辞なしでそのまま通過し、国際化不要だった名前のIDNA慣行と一致します。
ラベルに非ASCII符号点がある場合、RFC 3492 Punycode符号化器を実行し結果にxn--を付け、DNSゾーンファイル、証明書SAN、リバースプロキシのホスト規則、WHOIS風表示で使うA-labelを生成します。
既にACEに見えるラベルはdecodeして再encodeする往復で検証し、手編集のxn--文字列は盲目的に信頼せずクローズドに失敗します。経路は純粋な算術で、ネットワークも乱数ソルトも壁時計もないため、同一入力は常に同一出力です。
移行チェックリスト、ゾーン行、ACME SAN、ASCIIホスト名のみ受け付けるシステムのサポート票など、貼り付け安全なASCIIホスト名が必要なときにこの経路を使ってください。DNSはラベルあたり63オクテット、組み立て後のASCIIホスト名に253文字の上限を課します。本エンジンは両方を検査し、過大な国際名が配備不能な文字列になる前に早期失敗します。
末尾ドットのFQDN表記は保持し、先頭ドット・連続ドット・スキーム・パス・ポート・userinfoは拒否して、SEOランディングを裸のドメイン変換に集中させます。
DNSでの使い方と実用上の制限
検証失敗はエンジン拒否後に残高を消費しません。複数ラベル設計は意図的で、クライアントにラベル分割・再結合を強いるのではなく、SEOと製品意図を「IDNAドメインエンコーダ」に合わせます。ソースホスト名は他のKIT parse項目と同じ保持規則に従い、アルゴリズムはisolate間で完全に決定論的なため結果をフィクスチャに固定しても安全です。
完全URLは送らず、先にスキームとパスを除き裸のホスト名だけを変換して契約を狭く保ち、エラーを実行可能にしてください。ラベルが失敗したらそのラベルを直して再送します。部分成功は返さないためクライアントが単純になり、半変換ホスト名が本番DNSへ漏れるのを防ぎます。
活用例
DNSゾーンと証明書の準備
ASCIIのみ受け付けるゾーンファイル、ACME SAN一覧、リバースプロキシのホスト規則を書く前に、Unicodeのブランド/都市ホスト名をxn-- ASCII形へ符号化します。
サポートとログの可読性
メールヘッダ、証明書透明性ログ、チケットシステムから得たACEホスト名を、担当者と顧客が読めるUnicodeへ復号します。
よくある質問
xn--ホスト名をUnicodeへ戻すには?
modeをdecodeにし、textにACEホスト名を入れてください。各ラベルが有効ならresultがUnicode形を返します。
無効なIDNAラベルではどうなりますか?
メッセージはラベル位置と理由(空のxn--本体、不正Punycode、空ラベル、長制限)を示します。失敗は課金されません。
複数ラベルの完全ホスト名を変換できますか?
はい。 単一ラベルのPunycodeツールと異なり、本機能は複数ラベルドメインを受け取り、各ラベルをIDNA規則で変換しasciiとunicodeの両ビューを返します。
スキームやパスの付いたアドレスも変換できますか?
いいえ。変換できるのはホスト名だけです。スキーム、パス、ポート、ユーザー情報、先頭や連続する点は受け付けません。末尾の点は、付いていればそのまま残ります。
ドメイン名の長さに制限はありますか?
あります。点で区切られた各ラベルは変換後に六十三オクテットまで、ASCIIにした名前全体は二百五十三文字までです。両方を確認し、長すぎる名前は早めにお知らせします。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/idna \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"münchen.example.com"}'const res = await fetch("https://api.kit.forhosting.com/enc/idna", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "münchen.example.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/idna",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "münchen.example.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/idna", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"münchen.example.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"münchen.example.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/idna", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "münchen.example.com"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.idna",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
本機能は単一ラベルだけでなく、複数ラベルのホスト名全体を受け取り、modeフィールドで双方向に変換します:encodeはToASCII、decodeはToUnicodeです。空のACE本体、切れたPunycode、不正文字、連続ドット、スキーム・パス、DNS長違反は、文字列を黙って壊すのではなく、問題のラベル番号を示すinvalid_inputで失敗します。
Unicodeホスト名をIDNA ASCIIへ符号化(ToASCII / xn--)
必須の文字列フィールドtextに、完全な国際化ドメイン名(例:ウムラウト付きの都市ブランドと古典的な第2レベル・トップレベル)を設定したJSON本体を送り、modeは既定のencodeのままにするか、明示的にencodeを指定してください。応答にはresult(完全なASCIIホスト名)、ascii(同じワイヤ形式)、unicode(折りたたみ後のUnicode表示)、label_count、いずれかのラベルがACEを使ったときのhas_ace true、mode encode、method idnaが含まれ、テストで各フィールドを固定できます。
ACEホスト名をUnicodeへ復号し無効ラベルを報告する
modeをdecodeにし、textにxn--mnchen-3ya.example.comのようなASCIIまたは混在ACEホスト名を入れてください。エンジンは各ラベルを順に処理し、先頭のxn--があれば除去し、本体が英数字と内部ハイフンの基本文字のみであることを検証し、RFC 3492デコーダでUnicode符号点を復元します(JavaScript文字列では補助面文字がサロゲートペアで表されます)。完全ホスト名向けのIDNAドメイン符号化・復号の検索意図には本機能を選び、単一ラベルPunycode本体の実験やライブDNS解決は他ツールに任せてください。復号後は再符号化し本体との完全往復を要求するため、切れたACEや手編集ACEはもっともらしい誤字形を返すのではなくinvalid_inputでクローズドに失敗します。xn--後の空本体、句読点などの不正文字、オーバーフロー、連続ドットによる空ラベル、DNS長超過は、1始まりのラベル位置を含む説明的なinvalid_inputを上げ、一括ツールが悪い区間を強調できます。純ASCIIの非ACEラベルはdecodeで通過し、混在ホスト名に既にあるUnicodeラベルは受理されasciiフィールドへ再導出されるため、応答は常に両ビューを提供します。成功したdecodeはresultとunicodeを読みやすいU-label形、asciiをワイヤ形、label_count、ACEがあった場合のhas_ace true、mode decode、method idnaを返します。検証失敗はエンジン拒否後に前払いAPIでは課金されず、疑わしいログ行の探索的decodeを安価に保ちつつ、ゴミ入力での黙った成功から残高を守ります。
API利用、料金、DNSワークフローと実用上の制限
サポート手順書、教室デモ、単発のホスト名確認には、OpenSSL s_clientの工夫や言語ランタイムを入れずに、ブラウザ上の無料IDNAドメインエンコーダを呼び出してください。バックエンド、レジストラパネル、証明書自動化ジョブ、メールゲートウェイ、SDKが同じencode/decodeを残高下で必要とする場合は、成功1件あたり$0.002の前払いKIT APIを使います。典型的な流れでは、ゾーンテンプレートやリバースプロキシのserver_name一覧にA-labelを書く前にUnicodeブランドホスト名を符号化し、メールヘッダ・証明書透明性ログ・チケット件名からコピーしたACE名を復号して運用者が意図したU-labelを読みます。別の流れでは、リリース前にドキュメント例が往復できるかを、asciiとunicodeの両フィールドを継続的インテグレーションのフィクスチャに固定して確認します。SDK作者はresultをコピーボタンに写像でき、ascii・unicode・label_count・has_aceが初学者向けOpenAPI例を自己説明的にします。
連携の活用例
ドキュメントとCIゴールデン検査
複数ラベルのIDNA名についてencode/decodeフィクスチャを固定し、ACE処理がずれたらドキュメント例と継続的インテグレーションがすぐに失敗するようにします。
技術的な質問
UnicodeドメインをIDNA ASCIIへ変換するには?
textに完全ホスト名(例:münchen.example.com)を入れ、modeをencode(または省略)したJSONを送ってください。resultフィールドがxn--mnchen-3ya.example.comのようなASCII形を返します。
IDNAドメインエンコーダは無料ですか?
ブラウザツールは端末上で無料です。API呼び出しは成功1件あたり$0.002の前払いKIT残高を使い、検証失敗は課金されません。