Punycode


Punycode ist ein Enkodierungsschema, das Zeichenketten von Unicode (UTF-8) in ASCII-Zeichen umwandelt und umgekehrt. Der ASCII-Zeichensatz wird bei der Darstellung und Verarbeitung von Domain- und Hostnamen verwendet. Bei internationalen Domains kommt der Standard IDNA (Internationalizing Domain Names in Applications) zum Einsatz, der den ASCIII-Zeichensatz ergänzt. Punycode ist ein wichtiger Bestandteil dieses Standards. Er soll eine eineindeutige Umwandlung ermöglichen.

Allgemeine Informationen zum Thema

Bei der Anzeige von internationalen Domains (sogenannten IDN) behebt Punycode das Problem, dass bestimmte Zeichen wie Umlaute, diakritische Zeichen und Buchstaben, die nicht zum lateinischen Alphabet gehören, nicht umgewandelt werden konnten. Das ursprüngliche Domain Name System (DNS) sah dies nicht vor. In der deutschen Sprache sind das zum Beispiel Umlaute wie ä, ü und ö, aber auch diakritische Zeichen wie der Akzent des e's in Café. Da die Vergabestellen der jeweiligen Länder individuell regeln, welche Zeichen für die Registrierung einer Domain erlaubt sind, wurde ein Internetstandard notwendig, der auf internationaler Ebene funktioniert. Mit IDNA2003 und später IDNA2008 wurden solche Standards geschaffen.

Beispiel

Würde ein Nutzer bücher.com oder café.com in den Browser tippen, würde der Browser diese Zeichenkette einlesen und mihilfe der Punycode-Syntax konvertieren. Aus "bücher.com" wird "xn—bcher-kva.com"; Aus "café.com" wird "xn-caf-dma.com". Die beiden letzten Zeichenketten kann der Browser interpretieren, wenn er die IDNA Funktionen unterstützt, und ihnen die richtige Adresse zuordnen. Andernfalls würde er eine Fehlermeldung oder eine leere Website anzeigen.

Funktionsweise

Jede Domain, die Unicode-Zeichen enthält, wird in einem ersten Schritt normalisiert. Dies erfolgt durch den Klienten (Browser oder Emailprogramm) und das sogenannte Nameprep-Verfahren.[1] So werden Großbuchstaben zu Kleinbuchstaben umgewandelt und ähnliche Zeichen ausgetauscht. Aus der Zeichenkette (engl.: String) "STRAße" wird zum Beispiel "strasse".[2] Bei der neuesten Version des Standards (IDNA2008) wird die Normalisierung an die Benutzerschnittstelle ausgelagert und ist nicht mehr Teil des eigentlichen Standards.

Nach der Normalisierung werden alle Nicht-ASCIII-Zeichen zunächst aus dem Domainnamen entfernt, um dann einen daraus abgeleiteten String einzufügen. In diesem String sind der Ort, in dem der ursprüngliche String vorhanden ist, und die Art des Zeichens in Unicode-Schreibweise kodiert beziehungsweise gespeichert. Punycode stellt dem ursprünglichen String zudem ein Präfix voran: Vor jedem internationalen Domainnamen steht „xn--“. Dieses Präfix wurde ausgesucht, weil es aufgrund des geringen Vorkommens in natürlichen Sprachen höchstwahrscheinlich nicht zu Kodierungskonflikten mit dem ASCIII-Zeichensatz kommt.

Diese einzelnen Schritte werden durch einen darüber liegenden Algorithmus Bootstring in Gang gesetzt. Im Standard RFC3492 (IDNA2003) ist dieser Algorithmus definiert. Punycode ist gewissermaßen eine Instanz von Bootstring und speziell auf die Anforderungen von IDNA ausgelegt.

Besonderheiten

Derzeit gibt es zwei Standards: IDNA2003 und IDNA2008. Sie enthalten nicht die gleichen Vorgaben und die Unterstützung durch den Browser ist bei dem Neueren nicht immer gegeben. Hinzu kommt, dass der neue Standard etwa 8000 Zeichen nicht enthält, die im alten Standard noch vorgesehen waren.[3] Dies kann dazu führen, dass vorher gültige Domains ungültig werden. Mit der steigenden Unterstüzung durch Browser werden diese Probleme nicht mehr vorhanden sein.[4]

Bedeutung für die Suchmaschinenoptimierung

Relevant für die Suchmaschinenoptimierung ist Punycode vor allem bei der Anmeldung und Verlinkung von IDN-Domains (Umlautdomains).[5] Bei der deutschen Vergabestelle DENIC kann eine Punycode-Schreibweise für Umlautdomains unter dem Menüpunkt IDN angegeben werden. Auch Google empfiehlt zum Beispiel eine Punycode-Variante bei Google Analytics oder AdWords anzugeben, damit die Domainadresse richtig referenziert wird.[6] Tools wie Backlinkchecker benötigen ebenfalls diese Schreibweise, da sie mit Umlauten nicht umgehen können.

Jedoch: Umlautdomains werden in der organischen Suche nicht benachteiligt. Lediglich die Referenzierung mit anderen Tools ist betroffen. Suchmaschinen arbeiten in der Regel mit internationalen Zeichensätzen und haben für bestimmte Länder weitere Zeichensätze parat. Sie erledigen das Umlaut Handling mithilfe von Punycode und ordnen den Suchanfragen die richtigen Ergebnisse zu.[7]

Allerdings sind weitere Aspekte wie die Konkurrenz oder das Emailprogramm zu beachten: Wer eine Domain anmeldet, würde in der Regel auch die Umlautschreibweise anmelden, um Konkurrenten erst gar nicht die Möglichkeit zu geben, ein ähnliches Projekt hochzuziehen. Zudem können Emailprogramme Probleme mit Umlauten haben und die entsprechenden Email-Adressen nicht verarbeiten.

Einzelnachweise

  1. Nameprep: A Stringprep Profile for Internationalized Domain Names (IDN) ietf.org. Abgerufen am 08.09.2015
  2. Punycode 4webmaster.de. Abgerufen am 08.09.2015
  3. Internationalized Domain Names (IDN) FAQ unicode.org. Abgerufen am 08.09.2015
  4. Unicode IDNA Compatibility Processing unicode.org. Abgerufen am 08.09.2015
  5. SEO-Experiment Finale: Verlinkung von IDN-Domains seo-handbuch.de. Abgerufen am 08.09.2015
  6. In-Page-Analyse und URLs mit nicht standardmäßigen Zeichen support.google.com. Abgerufen am 08.09.2015
  7. Internationalized Domains and SEO moz.com. Abgerufen am 08.09.2015

Weblinks