Punycode-Konverter (internationalisierte Domainnamen)

Wandelt internationalisierte Domainnamen (IDN) mit Nicht-ASCII-Zeichen wie Japanisch in Punycode (eine ASCII-kompatible Kodierung) um und zurück.

Nutzungstipps

  • Domainnamen, die aus mehreren Labels (durch `.` getrennte Teile) bestehen, werden ebenfalls automatisch Label für Label verarbeitet: Labels, die nur ASCII-Zeichen enthalten, bleiben unverändert, während nur Labels mit Nicht-ASCII-Zeichen in die Form mit dem Präfix `xn--` umgewandelt werden.
  • Im Modus "Punycode → Domainname" werden nur Labels dekodiert, die das Präfix `xn--` enthalten; alle anderen Labels bleiben unverändert.
  • Dieselbe Konvertierungslogik lässt sich nicht nur auf Domainnamen anwenden, sondern auch auf den Teil einer E-Mail-Adresse nach dem `@` (den Domainteil).
  • Wenn man einen internationalisierten Domainnamen tatsächlich in die Adressleiste des Browsers eingibt, wandeln die meisten Browser ihn intern zunächst in Punycode um, bevor sie die DNS-Auflösung durchführen.

Häufig gestellte Fragen

Punycode (RFC 3492) ist ein Kodierungsverfahren, das Domainnamen mit Unicode-Zeichen – etwa Japanisch, Chinesisch oder Arabisch –, sogenannte internationalisierte Domainnamen (IDN), in Zeichenketten umwandelt, die ausschließlich aus den ASCII-Zeichen bestehen, die das DNS verarbeiten kann. Das konvertierte Label erhält dabei das Präfix `xn--`.

Das DNS (Domain Name System) wurde ursprünglich unter der Annahme entworfen, dass ausschließlich ASCII-Zeichen verwendet werden, weshalb Domainnamen mit japanischen Zeichen oder Emojis nicht direkt aufgelöst werden können. Punycode wandelt Domainnamen mit Nicht-ASCII-Zeichen in ASCII-Zeichenketten um und ermöglicht so internationalisierte Domainnamen, ohne die bestehende DNS-Infrastruktur zu verändern.

`xn--` wird als "ACE-Präfix" (ASCII Compatible Encoding) bezeichnet und signalisiert dem DNS sowie kompatibler Software, dass es sich bei diesem Label um einen mit Punycode kodierten internationalisierten Domainnamen handelt. Erkennen Browser dieses Präfix, dekodieren sie es in der Regel und zeigen dem Nutzer die ursprüngliche Unicode-Zeichenkette an.

Ja, dies ist als Phishing-Technik unter dem Namen "IDN-Homograph-Angriff" bekannt. Es gibt dokumentierte Fälle, in denen eine mit optisch fast identischen, aber unterschiedlichen Zeichen kodierte Punycode-Domain (z. B. `xn--80ak6aa92e.com`) – etwa dem kyrillischen "а" statt des lateinischen "a" – genutzt wurde, um eine legitime Domain vorzutäuschen. Führende Browser wirken dem entgegen, indem sie bei einer verdächtigen Zeichenmischung die Punycode-Form (die mit `xn--` beginnende Zeichenkette) statt der dekodierten Version in der Adressleiste anzeigen.
ツールくん

Übrigens – die Geschichte dahinter, wie "Katze" und "日本語" zu Domainnamen wurden

Die Diskussion über internationalisierte Domainnamen (IDN) begann Ende der 1990er-Jahre, doch die Standardisierung nahm viel Zeit in Anspruch. Es wurden mehrere Ansätze vorgeschlagen, um Nicht-ASCII-Zeichen zu verarbeiten, ohne den Kern des DNS zu verändern. Letztlich setzte sich der Punycode-Ansatz durch – Kodierung und Dekodierung auf Anwendungsebene (clientseitig), ohne den DNS-Server selbst zu verändern –, der 2003 als RFC 3492 standardisiert wurde.

Der Name "Punycode" soll auf eine Verbindung von "Unicode" und "an amusing pun" (ein amüsantes Wortspiel) zurückgehen; der Algorithmus selbst ist eine für Domainnamen spezialisierte Variante eines allgemeineren Kodierungsverfahrens namens Bootstring (eine von IBM-Forschern entwickelte Universalmethode zur Kodierung eines beliebigen Zeichensatzes in einen eingeschränkten Zeichensatz). Dass selbst die Herkunft des Namens "Punycode" mit einem Augenzwinkern verbunden ist, zeigt den typischen Humor der Entwickler-Community.

Heute werden Domainnamen mit den unterschiedlichsten Sprachen und Symbolen tatsächlich registriert und genutzt – japanische Domains (`.jp`) ebenso wie Emoji-Domains (reale Beispiele wie `💩.la` existieren) –, doch im Hintergrund läuft dabei stets dieser Punycode-Konvertierungsprozess ab. Selbst die elegante japanische Domain, die in der Adressleiste des Browsers angezeigt wird, wird im Datenverkehr mit dem DNS-Server als schlichte, mit `xn--` beginnende ASCII-Zeichenkette übertragen.