Domain-Leitfäden

Was ist Punycode?

Vollständige Erklärung von Punycode, seiner Rolle bei internationalisierten Domainnamen, der Umwandlung von Nicht-ASCII-Zeichen und möglichen Sicherheitsrisiken.

3Min. LesezeitAktualisiert2026-06-22

Punycode ist ein Codierungssystem, das zur Darstellung von Nicht-ASCII-Zeichen im Internet verwendet wird. Sein Hauptzweck besteht darin, Nicht-ASCII-Zeichen in reine ASCII-Zeichen umzuwandeln, damit sie im Domain Name System (DNS) normal aufgelöst und verarbeitet werden können.


Da das ursprüngliche Domainnamensystem auf dem ASCII-Zeichensatz basierte, konnte es Nicht-ASCII-Zeichen wie chinesische Zeichen, kyrillische Buchstaben oder griechische Buchstaben nicht direkt verarbeiten. Um Domainnamen mit Nicht-ASCII-Zeichen im Internet nutzbar zu machen, wurde Punycode eingeführt.


Punycode nutzt einen auf ASCII-Zeichen basierenden Codierungsalgorithmus. Er wandelt Folgen von Nicht-ASCII-Zeichen in ein ASCII-Präfix um, das mit "xn--" beginnt und von einer Reihe von ASCII-Zeichen gefolgt wird. Dadurch können diese Domainnamen im bestehenden DNS verarbeitet werden.


Wenn wir zum Beispiel einen Domainnamen mit Nicht-ASCII-Zeichen wie "范例.com" haben, wird er durch Punycode-Codierung zu "xn--fsqr86j.com". So kann das DNS diesen Domainnamen korrekt auflösen.


Punycode-Codierung und -Decodierung erfolgen durch einen bestimmten Algorithmus und können mit entsprechenden Codierungs- und Decodierungswerkzeugen oder Bibliotheken durchgeführt werden.


Hintergrund und Prinzipien von Punycode

Punycode ist ein ASCII-basiertes Codierungsschema, das Nicht-ASCII-Zeichen in ASCII-Zeichen umwandelt, damit sie innerhalb des Domainnamensystems verarbeitet werden können. Es verwendet einen bestimmten Codierungsalgorithmus, der Folgen von Nicht-ASCII-Zeichen in ein ASCII-Präfix umwandelt, das mit "xn--" beginnt und von einer Reihe von ASCII-Zeichen gefolgt wird. Diese Codierung bewahrt die Bedeutung des ursprünglichen Domainnamens und stellt zugleich die Kompatibilität mit dem bestehenden DNS sicher.


Anwendungen von Punycode

Punycode wird häufig bei internationalisierten Domainnamen (IDNs) verwendet und ermöglicht, dass Domainnamen mit Nicht-ASCII-Zeichen im Internet normal funktionieren. Es spielt eine wichtige Rolle bei der Domainnamenauflösung, bei E-Mail, URLs und anderen Netzwerkkennungen in mehrsprachigen Umgebungen. Durch Punycode-Codierung können Nutzer Domainnamen in ihren eigenen Sprachen und Zeichensätzen erstellen und so reibungsloser mit dem globalen Internet interagieren.


Der Codierungs- und Decodierungsprozess von Punycode

Beim Punycode-Codierungsprozess werden Nicht-ASCII-Zeichen in ihre Unicode-Codepunkte umgewandelt. Anschließend werden eine Reihe von Transformationen und Kompressionsoperationen durchgeführt, um die entsprechende ASCII-Zeichenfolge zu erzeugen. Die Decodierung ist der umgekehrte Vorgang: Die codierte ASCII-Zeichenfolge wird wieder in die ursprünglichen Nicht-ASCII-Zeichen zurückverwandelt.


Sicherheitsprobleme bei Punycode

Aufgrund der Vielzahl von Sprachen weltweit führt der Zustrom verschiedener Zeichen in Domainnamen zwangsläufig zu einigen Problemen, zum Beispiel zu Phishing-Angriffen.


Viele Unicode-Zeichen, die in internationalisierten Domainnamen griechische, slawische, armenische und andere Buchstaben darstellen, sehen lateinischen Buchstaben ähnlich, werden von Computern aber als völlig unterschiedliche Webadressen verarbeitet. So werden zum Beispiel der slawische Buchstabe “а” (U+0430) und der lateinische Buchstabe “a” (U+0041) von Browsern als unterschiedliche Zeichen behandelt, obwohl beide in der Adressleiste als “a” angezeigt werden. Da einige frühere Browser die Punycode-codierten Domainnamen in der Adressleiste nicht anzeigten, entstanden viele verwirrende und schwer erkennbare Domainnamen.


Diese Schwachstelle bestand nicht lange. Kurz nach ihrer Offenlegung haben die betroffenen Anbieter das Problem in späteren Updates behoben.