In diesem Artikel
Was ist Punycode?
Punycode ist eine in RFC 3492 definierte Kodierungssyntax, die Unicode-Zeichen in einen begrenzten ASCII-Zeichensatz umwandelt, wie ihn das Domain Name System (DNS) verwendet. Sie ermöglicht internationalisierte Domainnamen (IDN) – Domainnamen mit Nicht-ASCII-Zeichen wie Akzenten, chinesischen Schriftzeichen oder arabischer Schrift –, damit sie innerhalb der reinen ASCII-DNS-Infrastruktur funktionieren.
Einer per Punycode kodierten Domain wird xn-- (das ACE-Präfix) vorangestellt, um zu signalisieren, dass sie kodiertes Unicode enthält. Aus der Domain münchen.de wird zum Beispiel xn--mnchen-3ya.de in Punycode. Ein Punycode-Konverter übersetzt zwischen der menschenlesbaren Unicode-Form und der DNS-kompatiblen ASCII-Form.
So funktioniert die Punycode-Kodierung
Punycode verwendet einen Bootstring-Algorithmus, um Unicode-Codepunkte als Folge einfacher ASCII-Zeichen (a–z, 0–9 und Bindestriche) darzustellen.
- Unicode-Trennung – der Encoder erkennt, welche Zeichen einfaches ASCII sind (unverändert übernommen) und welche Nicht-ASCII sind (müssen kodiert werden)
- Delta-Kodierung – Nicht-ASCII-Zeichen werden als numerische Deltas kodiert, die ihre Position und ihren Codepunkt darstellen und zu Zahlen im Basis-36-Format komprimiert werden
- ACE-Präfix – der fertigen kodierten Zeichenkette wird xn-- vorangestellt, um sie als Punycode zu kennzeichnen; so entsteht die vom DNS genutzte ACE-Form (ASCII Compatible Encoding)
Kostenlos testen – keine Registrierung erforderlich
Punycode umwandeln →Wann Punycode verwenden
Die Punycode-Umwandlung wird immer dann benötigt, wenn Sie in Systemen mit internationalisierten Domainnamen arbeiten, die nur ASCII unterstützen.
- Domainregistrierung – Registrare verlangen die Punycode-Form zur Registrierung von IDN-Domains, und WHOIS-Abfragen nutzen die xn--kodierte Form
- E-Mail mit internationalen Domains – E-Mail-Adressen wie user@münchen.de müssen für die SMTP-Zustellung in user@xn--mnchen-3ya.de umgewandelt werden
- DNS-Konfiguration – DNS-Zonendateien und -Einträge verwenden die Punycode-Form für jedes Domainlabel mit Nicht-ASCII-Zeichen
Häufig gestellte Fragen
Ist Punycode dasselbe wie URL-Kodierung?
Nein. Die URL-Kodierung (Prozentkodierung) wandelt Zeichen in %XX-Hex-Sequenzen für die Verwendung in URL-Pfaden und Query-Strings um. Punycode kodiert speziell Unicode-Domainlabels für das DNS in ASCII. Sie lösen unterschiedliche Probleme – die URL-Kodierung ist für URLs, Punycode ist für Domainnamen.
Kann Punycode für Phishing missbraucht werden?
Ja, das ist als IDN-Homograph-Angriff bekannt. Angreifer registrieren Domains mit Unicode-Zeichen, die lateinischen Buchstaben zum Verwechseln ähnlich sehen (z. B. das kyrillische „а“ gegenüber dem lateinischen „a“). Moderne Browser wirken dem entgegen, indem sie bei verdächtigen Domains mit gemischten Schriften die Punycode-Form xn-- anzeigen.
Unterstützen alle Browser internationalisierte Domainnamen?
Ja. Alle modernen Browser wandeln IDN-Domains für die DNS-Auflösung automatisch in Punycode um und zeigen in der Adressleiste die Unicode-Form an. Die Umwandlung ist für die Nutzer transparent. Als Phishing-Schutz können Browser jedoch die Punycode-Form für Domains anzeigen, die Schriften mischen.