IDNA-Kodierer
Aus münchen.example.com wird xn--mnchen-3ya.example.com: Jedes Label mit Umlauten oder anderer Schrift erhält seine xn--Form, reine ASCII-Labels bleiben unverändert. Umgekehrt dekodieren Sie Hostnamen aus Logs oder Mail-Headern wieder in lesbare Schrift. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Text
- münchen.example.com
- Berechnungsmodus
- Encode
- Ergebnis
- xn--mnchen-3ya.example.com
- ASCII
- xn--mnchen-3ya.example.com
- Unicode
- münchen.example.com
- Anzahl der Labels
- 3
Internationalisierte Domänennamen erlauben Marken, Städten und Personennamen, in nativen Schriften im öffentlichen Internet zu erscheinen, doch das Domain Name System transportiert Labels weiterhin als ASCII-kompatible Kodierungen. IDNA (Internationalized Domain Names in Applications) ordnet jedes Unicode-U-Label einem A-Label zu, das mit xn-- beginnt und RFC-3492-Punycode trägt, und kehrt die Abbildung um, damit Betreiber den beabsichtigten Namen wieder lesen können. Diese Fähigkeit akzeptiert einen vollständigen Multi-Label-Hostnamen —nicht nur ein einzelnes Label— und wandelt in beide Richtungen mit einem einfachen mode-Feld: encode für ToASCII, decode für ToUnicode. Reine ASCII-Labels bleiben unverändert; gemischte Namen wie ein Stadtlabel plus klassische TLD werden Label für Label verarbeitet.
Unicode-Hostnamen in IDNA-ASCII kodieren (ToASCII / xn--)
Die Engine teilt den Hostnamen an Punkten, faltet jedes Label locale-unabhängig und verarbeitet Labels getrennt, sodass ein gemischter Name mit nicht-ASCII-Linkslabel neben ASCII-Rechtslabel umgewandelt wird, ohne die gesamte Zeichenkette durch einen einzigen Kodierer zu zwingen. Reine ASCII-LDH-Labels passieren unverändert ohne xn---Präfix, passend zur IDNA-Praxis für Namen, die nie Internationalisierung brauchten. Enthält ein Label irgendeinen Nicht-ASCII-Codepunkt, führt die Engine den RFC-3492-Punycode-Kodierer aus und stellt xn-- voran, um das A-Label zu erzeugen, das in DNS-Zonendateien, Zertifikat-SANs, Reverse-Proxy-Hostregeln und WHOIS-artigen Anzeigen genutzt wird.
Labels, die bereits wie ACE-Formen aussehen, werden per Decode-und-Re-Encode-Roundtrip geprüft, sodass eine handeditierte xn---Zeichenkette geschlossen scheitert statt blind vertraut zu werden. Identische Eingaben erzeugen stets identische Ausgaben, weil der Pfad reine Arithmetik ist —ohne Netz, ohne Zufallssalz und ohne Wanduhr. Nutzen Sie diesen Pfad, wenn Sie einen einfügesicheren ASCII-Hostnamen für eine Migrationscheckliste, eine Zonenzeile, einen ACME-SAN-Eintrag oder ein Support-Ticket brauchen, das Systeme übersteht, die nur ASCII-Hostnamen akzeptieren.
DNS erzwingt ein Limit von dreiundsechzig Oktetten pro Label und zweihundertdreiundfünfzig Zeichen am zusammengefügten ASCII-Hostnamen; diese Engine prüft beides, damit überlange internationale Namen früh scheitern statt nicht bereitstellbare Zeichenketten zu erzeugen. FQDN-Notation mit abschließendem Punkt bleibt erhalten, wenn vorhanden, während führende Punkte, aufeinanderfolgende Punkte, Schemata, Pfade, Ports und Userinfo abgelehnt werden, damit die SEO-Landing auf bare Domain-Umwandlung fokussiert bleibt.
Anwendungsfälle
DNS-Zone und Zertifikatsvorbereitung
Kodieren Sie Unicode-Marken- oder Stadt-Hostnamen in die ASCII-Form xn--, bevor Sie Zonendateien, ACME-SAN-Listen oder Reverse-Proxy-Hostregeln schreiben, die nur ASCII akzeptieren.
Support und Lesbarkeit von Protokollen
Dekodieren Sie ACE-Hostnamen aus Mail-Headern, Certificate-Transparency-Logs und Ticketsystemen zurück in lesbares Unicode für Agenten und Kunden.
Häufige Fragen
Wie dekodiere ich einen xn--Hostname zurück nach Unicode?
Setzen Sie mode auf decode und legen Sie den ACE-Hostnamen in text. Das Feld result liefert die Unicode-Form, wenn jedes Label gültig ist.
Was passiert bei einem ungültigen IDNA-Label?
Die Meldung nennt Labelposition und Grund (leerer xn--Rumpf, fehlerhaftes Punycode, leere Labels, Längenlimits). Fehler werden nicht berechnet.
Kann ich einen vollständigen Multi-Label-Hostnamen umwandeln?
Ja. Anders als Einzellabel-Punycode-Werkzeuge akzeptiert diese Fähigkeit Multi-Label-Domains und wandelt jedes Label nach IDNA-Regeln, mit ascii- und unicode-Sichten.
Darf ich eine ganze Adresse mit Protokoll oder Pfad einfügen?
Nein. Umgewandelt werden nur reine Hostnamen. Protokollangaben wie https://, Pfade, Ports, Zugangsdaten, führende Punkte und doppelte Punkte werden abgelehnt; ein abschließender Punkt am Ende des Namens bleibt dagegen erhalten.
Wie lang darf ein internationaler Domainname sein?
Jedes Label zwischen zwei Punkten darf nach der Umwandlung höchstens dreiundsechzig Bytes haben, der ganze ASCII-Hostname höchstens zweihundertdreiundfünfzig Zeichen. Beide Grenzen werden geprüft, damit zu lange Namen früh auffallen.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
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)Beispiel-Anfrage
{
"text": "münchen.example.com"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.idna",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Leere ACE-Rümpfe, abgeschnittenes Punycode, unzulässige Zeichen, aufeinanderfolgende Punkte, Schemata, Pfade und DNS-Längenverletzungen scheitern mit invalid_input, das den Index des fehlerhaften Labels nennt, statt die Zeichenkette still zu verfälschen.
Unicode-Hostnamen in IDNA-ASCII kodieren (ToASCII / xn--)
Senden Sie einen JSON-Body mit dem Pflicht-Stringfeld text auf einen vollständigen internationalisierten Domänennamen —beispielsweise eine Stadtmarke mit Umlaut gefolgt von klassischer Second-Level- und Top-Level-Domain— und lassen Sie mode beim Standard encode oder setzen Sie mode ausdrücklich auf encode. Die Antwort enthält result (den vollständigen ASCII-Hostnamen), ascii (dieselbe Wire-Form), unicode (die gefaltete Unicode-Ansicht), label_count, has_ace true wenn ein Label ACE nutzte, mode encode und method idna, damit Tests jedes Feld pinnen können.
ACE-Hostnamen nach Unicode dekodieren und ungültige Labels melden
Setzen Sie mode auf decode und legen Sie einen ASCII- oder gemischten ACE-Hostnamen wie xn--mnchen-3ya.example.com in text. Die Engine geht jedes Label durch, entfernt ein führendes xn---Präfix falls vorhanden, prüft, dass der Rumpf nur das Grundalphabet aus Buchstaben, Ziffern und internen Bindestrichen nutzt, und führt den RFC-3492-Dekodierer aus, um Unicode-Codepunkte zu gewinnen —einschließlich Zeichen der ergänzenden Ebenen, die in JavaScript-Strings als Surrogatpaare dargestellt werden. Reine ASCII-Nicht-ACE-Labels passieren beim Decode, und Unicode-Labels, die bereits in einem gemischten Hostnamen vorkommen, werden akzeptiert und im Feld ascii erneut nach ASCII abgeleitet, sodass die Antwort stets beide Sichten bietet. Bevorzugen Sie diese Fähigkeit, wenn Ihre Suchintention ein IDNA-Domain-Kodierer oder -Dekodierer für vollständige Hostnamen ist; Einzellabel-Punycode-Körper-Experimente und Live-DNS-Auflösung gehören zu anderen Werkzeugen. Nach dem Dekodieren eines Labels kodiert sie erneut und verlangt einen exakten Roundtrip gegen den Rumpf, sodass abgeschnittene oder handeditierte ACE-Zeichenketten mit invalid_input geschlossen scheitern statt plausible aber falsche Glyphen zurückzugeben. Leere Rümpfe nach xn--, unzulässige Zeichen wie Interpunktion, Overflow-Zustände, leere Labels durch aufeinanderfolgende Punkte und Labels über DNS-Längenlimits erzeugen eine beschreibende invalid_input-Meldung mit der einsbasierten Labelposition, damit Bulk-Werkzeuge das schlechte Segment hervorheben können. Erfolgreiches Decode liefert result und unicode als lesbare U-Label-Form, ascii als Wire-Form, label_count, has_ace true wenn ACE vorhanden war, mode decode und method idna. Fehlgeschlagene Validierung wird auf der vorausbezahlten API nach Ablehnung durch die Engine nicht berechnet, was exploratives Decode verdächtiger Logzeilen günstig hält und den Saldo vor stillem Erfolg bei Mülleingaben schützt.
API-Nutzung, Preise, DNS-Workflows und praktische Grenzen
Verarbeiten Sie vollständige Hostnamen in einem Aufruf —das Multi-Label-Design ist beabsichtigt, damit SEO und Produkt zu „IDNA-Domain-Kodierer“ passen, statt Clients zu zwingen, Labels selbst zu teilen und zu fügen. Wenn ein Label scheitert, korrigieren Sie es und senden Sie erneut; Teilerfolg wird nie zurückgegeben, was Clientcode einfach hält und halb umgewandelte Hostnamen vor dem Produktions-DNS schützt. Rufen Sie den kostenlosen IDNA-Domain-Kodierer im Browser für Support-Playbooks, Unterrichtsdemos und einmalige Hostname-Prüfungen auf, ohne OpenSSL-s_client-Tricks oder Sprachlaufzeiten zu installieren. Nutzen Sie die vorausbezahlte KIT-API, wenn ein Backend, Registrar-Panel, Zertifikatsautomatisierungsjob, Mail-Gateway oder SDK denselben encode- oder decode-Schritt unter Saldo zu $0.002 pro erfolgreichem Item braucht; Validierungsfehler verbrauchen nach Ablehnung durch die Engine nie Saldo. Ein typischer Workflow kodiert einen Unicode-Marken-Hostnamen, bevor A-Labels in eine Zonenvorlage oder Reverse-Proxy-server_name-Liste geschrieben werden, und dekodiert dann ACE-Namen aus Mail-Headern, Certificate-Transparency-Logs oder Ticketbetreffen, damit Betreiber die beabsichtigten U-Labels lesen können. SDK-Autoren können das result-Feld auf einen Kopierbutton mappen, während ascii, unicode, label_count und has_ace OpenAPI-Beispiele für Erstleser von IDNA selbsterklärend machen. Senden Sie keine vollständigen URLs: entfernen Sie zuerst Schema und Pfad und wandeln Sie nur den bare Hostnamen um, damit der Vertrag schmal und Fehlermeldungen handlungsfähig bleiben.
Integrationsbeispiele
Dokumentation und CI-Golden-Prüfungen
Pinnen Sie Encode- und Decode-Fixtures für Multi-Label-IDNA-Namen, damit Dokumentationsbeispiele und Continuous-Integration-Tests schnell scheitern, wenn die ACE-Behandlung driftet.
Technische Fragen
Wie wandle ich eine Unicode-Domain in IDNA-ASCII um?
Senden Sie JSON mit text auf den vollständigen Hostnamen (zum Beispiel münchen.example.com) und mode encode (oder lassen Sie mode weg). Das Feld result liefert die ASCII-Form wie xn--mnchen-3ya.example.com.
Ist der IDNA-Domain-Kodierer kostenlos?
Das Browser-Tool läuft kostenlos auf Ihrem Gerät. API-Aufrufe nutzen vorausbezahltes KIT-Saldo zu $0.002 pro erfolgreichem Item; Validierungsfehler werden nicht berechnet.