www.wikidata.de-de.nina.az
Punycode ist ein im RFC 3492 1 standardisiertes Kodierungsverfahren zum Umwandeln von Unicode Zeichenketten in ASCII kompatible Zeichenketten die aus den Zeichen a bis z 0 bis 9 und dem Bindestrich bestehen Punycode wurde entworfen um internationalisierte Domainnamen aus Unicode Zeichen eindeutig und umkehrbar durch ASCII Zeichen darzustellen Inhaltsverzeichnis 1 Grund der Einfuhrung 2 Regeln der Umwandlung 3 Weblinks 4 EinzelnachweiseGrund der Einfuhrung BearbeitenDer wichtigste Grund fur die Einfuhrung von Punycode war die Tatsache dass in dem etablierten Domain Name System nur Namen zugelassen sind die aus den 26 lateinischen Buchstaben den Ziffern 0 bis 9 sowie einem Bindestrich Minus Tastatur Bindestrich bestehen Fur die englische Sprache war dies ausreichend doch die meisten anderen Sprachen enthalten weitere Zeichen die deutsche Sprache beispielsweise die Umlautbuchstaben a o und u sowie das a href C3 9F html title ss ss a Um beliebige Texte aus derartigen Sprachen verarbeiten zu konnen wurde 2003 das Verfahren Internationalizing Domain Names in Applications IDNA eingefuhrt das Punycode als Kodierungsverfahren einsetzt Soll ein Text an ein System ubergeben werden das nur ASCII beherrscht so wird er zuvor per Punycode in ASCII umgesetzt Zu beachten ist dass sich in vielen Fallen der resultierende Text verlangert Soll umgekehrt dieser Text aus dem ASCII System entnommen werden so wird er per Punycode in die ursprungliche Form zuruckubersetzt Enthalt ein Text keinerlei Sonderzeichen so wird er durch dieses Verfahren nicht verandert Das Punycode Konvertierungsverfahren wurde unter Wahrung folgender Gesichtspunkte festgelegt Vollstandigkeit Jeder Name kann umgesetzt werden Eindeutigkeit Jedem Namen ist genau eine Umsetzung zugeordnet Reversibilitat Jeder umgesetzte Name kann zuruckkonvertiert werden Effizienz Der umgesetzte Name ist nicht wesentlich langer als der Ausgangsname Einfachheit Das Verfahren ist relativ einfach zu implementieren Lesbarkeit Namen aus im Wesentlichen lateinischen Buchstaben bleiben haufig lesbar da die Zeichen a bis z nicht verandert werdenRegeln der Umwandlung BearbeitenBeispiele Zeichenkette Punycode IDNAabcdef abcdef abcdef abaecdoef abcdef qua4k xn abcdef qua4kschon schn 7qa xn schn 7qayckhfkhtkh 22cdfh1b8fsa xn 22cdfh1b8fsa 74h xn 74h74h 74h 74h xn xn n def Punycode wird nicht verwendetAls Basiszeichen gelten im Folgenden die Buchstaben a bis z und die Ziffern 0 bis 9 Zusammen mit dem Bindestrich Minus als Trennzeichen stellen diese 37 Zeichen die einzig gultigen Zeichen in einem nach Punycode kodierten Text dar Enthalt die zu konvertierende Zeichenkette nur Basiszeichen so wird ein Minuszeichen angehangt sowohl Basiszeichen als auch Nicht Basiszeichen werden alle Basiszeichen unter Beibehaltung ihrer Reihenfolge aufgefuhrt und schliesslich die kodierten Nicht Basiszeichen durch ein Bindestrich Minus getrennt angehangt nur Nicht Basiszeichen so ist das Umwandlungsergebnis nur deren Codefolge ohne Trennzeichen Um die resultierende Zeichenkette moglichst kompakt zu gestalten werden die Sonderzeichen nicht eins zu eins sondern nach dem Punycode Verfahren kodiert Die Nicht Basiszeichen werden zuerst nach ihrem Zahlenwert Unicode Codepoint z B a 228 zh 1078 sortiert Die Differenz zwischen den Werten der einzelnen Zeichen wird zusammen mit der jeweiligen Position in der ursprunglichen Zeichenkette zu einer Zahl kodiert Diese Zahl wird anschliessend durch die 36 Basiszeichen dargestellt und an den Text angehangt Die Details zu diesem Verfahren sind in RFC 3492 1 festgelegt wo auch eine Referenzimplementierung in der Programmiersprache C fur die Kodierung und die Dekodierung sowie zahlreiche Beispiele enthalten sind Bei der Bildung von Domainnamen nach dem Standard Internationalizing Domain Names in Applications IDNA wird bei Vorhandensein von Nicht Basiszeichen das Prafix xn vorangestellt und andernfalls nur Basiszeichen kommt Punycode nicht zur Anwendung Zu beachten ist des Weiteren dass bei der Bildung eines IDNA Domainnamens vor der Kodierung nach Punycode der Domainname nach bestimmten Regeln normalisiert wird z B wird er in Kleinbuchstaben umgewandelt und bestimmte Unicode Zeichen auf andere als aquivalent geltende gemappt Diese Normalisierung ist nicht Teil von Punycode und i d R nicht eindeutig umkehrbar Weblinks BearbeitenA Costello RFC 3492 Punycode A Bootstring encoding of Unicode for Internationalized Domain Names in Applications IDNA Errata RFC 3492 Marz 2003 englisch Online Punycode Konverter Abgerufen am 13 Marz 2017 Online Punycode und Bootstring Konverter Abgerufen am 28 April 2019 Einzelnachweise Bearbeiten a b A Costello RFC 3492 Punycode A Bootstring encoding of Unicode for Internationalized Domain Names in Applications IDNA Errata RFC 3492 Marz 2003 englisch Abgerufen von https de wikipedia org w index php title Punycode amp oldid 234559084