PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Archive for the ‘IDNA’ tag

Punycode, IDN: Welche Probleme es bei Umlaut-Domains in PHP gibt

with 8 comments

Naja, eigentlich betrifft es nicht nur Umlaut-Domains hier in Deutschland, sondern allgemein alle Internationalized Domain Names auf der Welt. Also, was passiert wenn wir eine E-Mail an info@müller.de verschicken möchten? Was passiert wenn wir eine an die griechische Domain info@παράδειγμα.δοκιμή verschicken wollten? Was passiert wenn wir auf Port 80 des Webservers von www.müller.de zugreifen wollen? Richtig, alles wird fehlschlagen.

Erstmal zum Grundproblem. Das Internet ist alt, und damals hat noch niemand daran gedacht, dass es auch andere Sprachen als Englisch gibt, deshalb baut alles auf ASCII auf, also mehr oder weniger alles was auf einer englischen Tastatur zu finden ist. Das Domain Name System ist sogar noch strikter und erlaubt nur die 26 lateinischen Buchstaben, die Zahlen 0-9 und den Bindestrich. Das wars!

Man kam also auf die Idee, den Zeichensatz für Domains vergrößern zu wollen. Das interessante daran ist nun aber dass dies geschehen sollte ohne alle Server und Netzwerkgeräte austauschen zu müssen, man benötigte also eine Art Workaround. Deshalb wurde 2003 Punycode eingeführt. Mit Punycode kann man eine Domain, die beispielsweise Umlaute enthält, in eine Domain umwandeln die nur die oben erwähnten 37 zeichen enthält. Aus müller.de wird xn--mller-kva.de . Wie genau diese Umsetzung stattfindet kann im entsprechenden RFC 3492 nachgelesen werden, nur soviel: xn-- deutet auf eine Punycode-Domain hin. Die Umlaute werden angehängt, in diesen angehängten Zeichen ist die Position und der Umlaut codiert.

Weiterlesen »

Written by Michael Kliewe

Juli 27th, 2011 at 8:16 am

Posted in PHP

Tagged with , , ,