Björn Klippstein

Punycode

Klippstein IT Service

Aus 4webmaster.de

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Internationalizing Domain Names in Applications ist der Standard für Umlautdomains oder genauer: Domainnamen mit Nicht-ASCII-Zeichen. Der IE unterstützt solche Namen erst seit Version 7. IDNs werden für Phishing-Attacken genutzt.

Neue Zeichen

Jede Vergabestelle für Domains regelt separat, welche Zeichen sie für die von ihr vergebenen (Sub-)Domains erlaubt.

TLD Anzahl Zeichen Welche?
(allgemein) 37 26 Buchstaben des lateinischen Alphabets, 10 Ziffern und das Minus-Zeichen
.de +92 á à ă â å ä ã ą ā æ ć ĉ č ċ ç ď đ é è ĕ ê ě ë ė ę ē ğ ĝ ġ ģ ĥ ħ í ì ĭ î ï ĩ į ī ı ĵ ķ ĺ ľ ļ ł ń ň ñ ņ ŋ ó ò ŏ ô ö ő õ ø ō œ ĸ ŕ ř ŗ ś ŝ š ş ť ţ ŧ ú ù ŭ û ů ü ű ũ ų ū ŵ ý ŷ ÿ ź ž ż ð þ
.at + 34 à á â ã ä å æ ç è é ê ë ð ì í î ï ñ ò ó ô õ ö ø oe š þ ù ú û ü ý ÿ ž
.ch + 31 à á â ã ä å æ ç è é ê ë ð ì í î ï ñ ò ó ô õ ö ø þ ù ú û ü ý ÿ
.li + 31 à á â ã ä å æ ç è é ê ë ð ì í î ï ñ ò ó ô õ ö ø þ ù ú û ü ý ÿ
.info + 3 ä ö ü
.org + 3 ä ö ü
.com à á â ã ä å ā ă ą æ ç ć ĉ ċ č ď đ è é ê ë ē ĕ ė ę ě ŋ ð ĝ ğ ġ ģ ĥ ħ ì í î ï ĩ ī ĭ į ı ĵ ķ ĸ ĺ ļ ľ ł ñ ń ņ ň ò ó ô õ ö ø ō ŏ ő œ ŕ ŗ ř ś ŝ ş š ţ ť ŧ þ ù ú û ü ũ ū ŭ ů ű ų ŵ ý ÿ ŷ ź ż ž
.net à á â ã ä å ā ă ą æ ç ć ĉ ċ č ď đ è é ê ë ē ĕ ė ę ě ŋ ð ĝ ğ ġ ģ ĥ ħ ì í î ï ĩ ī ĭ į ı ĵ ķ ĸ ĺ ļ ľ ł ñ ń ņ ň ò ó ô õ ö ø ō ŏ ő œ ŕ ŗ ř ś ŝ ş š ţ ť ŧ þ ù ú û ü ũ ū ŭ ů ű ų ŵ ý ÿ ŷ ź ż ž

Das „ß“ wurde als identisch mit „ss“ deklariert und wird bei der Normalisierung in ss umgewandelt, so dass zum Beispiel „Pleiße“ identisch ist mit „Pleisse“.

Verarbeitung des Unicode-Strings

  1. Nameprep: Zunächst wird eine Unicode-Domain durch Nameprep normalisiert, das heißt Großbuchstaben werden zu Kleinbuchstaben und als äquivalent definierte Zeichen werden in die Normalform im ASCII-Code umgewandelt (so ist ß zu ss äquivalent, es wird also aus StRAße strasse)
  2. Punycode: Im Anschluss an die Normalisierung werden mittels Punycode die Nicht-ASCII-Buchstaben aus dem Namen entfernt und am Ende des Namens ein daraus abgeleiteter ASCII-String hinzugefügt, in dem die Position und Art des Unicode-Zeichens kodiert ist.
  3. Um einen IDN- von einem ASCII-Domainnamen zu unterscheiden, wird dem Punycode-String das Präfix xn-- vorangestellt.
  4. Das Resultat nennt man einen ACE-String (ASCII Compatible Encoding).

Die Umwandlung erfolgt beim Client, sodass die Server-Infrastruktur nicht verändert werden musste. Um IDNs nutzen zu können, muss ein Browser dazu fähig sein, den in der URL-Zeile eingegebenen internationalen Domainnamen (z. B. mit Umlauten) in einen ACE-String umzuwandeln.

Details der Punycode-Konvertierung

Beispiele
Zeichenkette Codierung
abcdef abcdef-
abæcdöef abcdef-qua4k
schön schn-7qa
ยจฆฟคฏข 22cdfh1b8fsa
74h

Als Basiszeichen gelten im folgenden die Buchstaben a bis z und die Ziffern 0 bis 9 (Groß- und Kleinschreibung spielt keine Rolle). Zusammen mit dem Bindestrich „-“ als Trennzeichen stellen diese 37 Zeichen die einzig gültigen Zeichen in einem nach Punycode kodierten Text dar.

Enthält die zu konvertierende Zeichenkette

  • nur Basiszeichen, so wird sie nicht verändert, jedoch das Trennzeichen „-“ angehängt.
  • sowohl Basiszeichen als auch Nicht-Basiszeichen, werden alle Basiszeichen unter Beibehaltung ihrer Reihenfolge aufgeführt und schließlich die kodierten Nicht-Basiszeichen durch „-“ getrennt angehängt.
  • nur Nicht-Basiszeichen, so ist das Umwandlungsergebnis nur deren Codefolge, ohne Trennzeichen

Um die resultierende Zeichenkette möglichst kompakt zu gestalten, werden die Sonderzeichen nicht „eins-zu-eins“, sondern nach dem Punycode-Verfahren kodiert. Die Nicht-Basiszeichen werden zuerst nach ihrem Zahlenwert sortiert. Die Differenz zwischen den Werten der einzelnen Zeichen wird mit der jeweiligen Position in der ursprünglichen Zeichenkette zur Bildung einer Zahl verwendet. Diese Zahl wird anschließend durch die 37 Basiszeichen dargestellt und an den kodierten Text angehängt. Die Details zu diesem Verfahren sind in RFC 3492 festgelegt, wo auch eine Referenzimplementierung in C für die Kodierung und die Dekodierung sowie zahlreiche Beispiele enthalten sind.

Bei der Bildung von Domainnamen nach dem IDNA-Standard wird bei Vorhandensein von Nicht-Basiszeichen ein „xn--“ Präfix vorangestellt.

Beispiel-Domainnamen

  • http://lüneburg.de/
  • www.dömäin.de → www.xn--dmin-moa0i.de
  • www.kühe-mögen-äpfel.de → www.xn--khe-mgen-pfel-jfb9x9c.de
  • www.äaaa.de → www.xn--aaa-pla.de
  • www.aäaa.de → www.xn--aaa-qla.de
  • www.aaäa.de → www.xn--aaa-rla.de
  • www.aaaä.de → www.xn--aaa-sla.de
  • déjà.vu → xn--dj-kia8a.vu
  • foo.âbcdéf.bar → foo.xn--bcdf-9na9b.bar


Kritik

Kritiker meinen, die Einführung der IDNs sei ein historischer Fehler in der Entwicklung des Internets gewesen. IDNs seien aufgrund der länderspezifischen Tastaturdesigns für weite Teile der Netzbevölkerung praktisch nicht erreichbar, vertieften damit die Gräben zwischen den Sprachräumen und konterkarierten letztlich das dem Internet zugrundeliegende Konzept vom "globalen Dorf". Dadurch werde die hinter der IDN-Einführung stehende Idee, insbesondere die Sprachräume mit nicht-lateinischer Schrift (z.B. Arabien, Ostasien) stärker ins Netz zu integrieren, ad absurdum geführt.

Zum 31. Dezember 2006 betrug der Anteil von IDNs an allen registrierten Domains unterhalb von .de 3,2% <ref>http://www.denic.de/de/domains/statistiken/domainentwicklung/index.html</ref>

Siehe auch

Weblinks





Dieser Artikel basiert auf dem Artikel Internationalizing_Domain_Names_in_Applications aus der freien Enzyklopädie Wikipedia. Er steht unter der GNU-Lizenz für freie Dokumentation. In diesem Wiki und / oder der Wikipedia ist eine Liste der Autoren verfügbar.




Dieser Artikel basiert auf dem Artikel Punycode aus der freien Enzyklopädie Wikipedia. Er steht unter der GNU-Lizenz für freie Dokumentation. In diesem Wiki und / oder der Wikipedia ist eine Liste der Autoren verfügbar.