You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> Als internationalisierte Domainnamen (englisch internationalized domain name; IDN), umgangssprachlich auch *Umlautdomain* oder *Sonderzeichendomain*, werden Domainnamen bezeichnet, die Umlaute, diakritische Zeichen oder Buchstaben aus anderen Alphabeten als dem lateinischen Alphabet enthalten. Solche Zeichen waren ursprünglich im Domain Name System nicht vorgesehen und wurden nachträglich durch den Internetstandard Internationalizing Domain Names in Applications (IDNA) ermöglicht.
47
-
44
+
>
48
45
> Grundsätzlich sind alle Unicode-Zeichen in IDNs zulässig. Jede Vergabestelle für Domains regelt jedoch individuell, welche Zeichen sie für Domain-Registrierungen erlaubt.
> Punycode ist ein im [RFC 3492](http://tools.ietf.org/html/rfc3492) 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.
57
53
58
-
59
54
### [Beipiele](#beipiele)
60
55
{: #beipiele}
61
56
62
-
Beispiele von IDN - mit entsprechender Punycodedarstellung
57
+
Beispiele von IDN mit entsprechender Punycode-Darstellung:
## [Anwendungsgebiete in PHP](#anwendungsgebiete-in-php)
88
84
{: #anwendungsgebiete-in-php}
89
85
90
-
Sämtliche Funktionen die Operationen mit Domains oder E-Mail-Adressen durchführen, benötigen bei der Anwendung mit Sonderzeichendomains eine vorherige Umwandlung in Punycode. Dies betrifft beispielsweise:
86
+
Viele Funktionen, die Operationen mit Domains oder E-Mail-Adressen durchführen, benötigen bei der Anwendung mit Sonderzeichendomains eine vorherige Umwandlung in Punycode. Dies betrifft beispielsweise:
91
87
92
88
-`file_get_contents()`
93
89
-`checkdnsrr()`
94
90
-`filter_var($email, FILTER_VALIDATE_EMAIL)` zur [E-Mail-Validierung]({{ page.root }}/jumpto/standard-mail-validation/#filtervar)
95
-
-etc ...
91
+
-…
96
92
97
-
98
-
#### [cURL - Zusatzinfo](#curl-zusatzinfo)
93
+
### [Zusatzinfo für cURL](#curl-zusatzinfo)
99
94
{: #curl-zusatzinfo}
100
95
101
96
Bei der Anwendung von cURL ist es möglicherweise nicht separat nötig, die Sonderzeichendomains (IDN) vorher in Punycode zu wandeln. Ob cURL bereits mit IDN-Unterstützung verfügbar ist, ist in der phpinfo() ersichtlich.
Für die Punycodeumwandlung gibt es einige PHP-Klassen im Web, dazu am besten mal [Tante G.](https://www.google.at/search?q=php+punycode+OR+idna+converter) fragen.
108
+
Für die Punycode-Umwandlung gibt es einige PHP-Klassen im Web. Dazu für aktuelle Ergebnisse am besten eine [Suchmaschine] befragen. Weit verbreitet ist die PHP-Klasse [idna_convert] von Matthias Sommerfeld. Dort gibt es zudem einen [Online-Punycode-Konverter][OPK].
113
109
114
-
Weit verbreitet ist die PHP-Klasse [idna_convert von Matthias Sommerfeld](http://phlymail.com/de/downloads/idna-convert.html) - dort gibts es überdies einen [Online-Punycode-Konverter](http://idnaconv.phlymail.de/?lang=de).
... dann steht die Funktion [idn_to_ascii()](http://php.net/manual/de/function.idn-to-ascii.php) zur Konvertierung in Punycode direkt zur Verfügung. Somit würde man sich eine externe Klasse ersparen.
160
+
…, dann steht die Funktion [idn_to_ascii()](http://php.net/manual/de/function.idn-to-ascii.php) zur Konvertierung in Punycode direkt zur Verfügung. Somit könnte auf eine externe Klasse verzichtet werden.
166
161
167
-
Mittels nachfolgendem Aufruf lässt sich rasch feststellen, ob diese Funktion verfügbar ist.
162
+
Mit diesem Aufruf kann festgestellt werden, ob die Funktion verfügbar ist:
168
163
169
164
~~~php
170
-
var_dump(function_exists('idn_to_ascii')); // true oder false
165
+
var_dump(function_exists('idn_to_ascii')); // true oder false
171
166
~~~
172
167
173
168
169
+
174
170
## [RFC zum Thema IDN(A) / Punycode](#rfc-zum-thema-idn-a-punycode)
175
171
{: #rfc-zum-thema-idn-a-punycode}
176
172
177
-
[RFC 3490](http://tools.ietf.org/html/rfc3490) - Internationalizing Domain Names in Applications (IDNA)
178
-
[RFC 3491](http://tools.ietf.org/html/rfc3491) - Nameprep: A Stringprep Profile for Internationalized Domain Names (IDN)
179
-
[RFC 3492](http://tools.ietf.org/html/rfc3492) - Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)
180
-
[RFC 3454](http://tools.ietf.org/html/rfc3454) - Preparation of Internationalized Strings ("stringprep")
181
-
[RFC 5890](http://tools.ietf.org/html/rfc5890) - Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework
182
-
[RFC 5891](http://tools.ietf.org/html/rfc5891) - Internationalized Domain Names in Applications (IDNA): Protocol
183
-
[RFC 5892](http://tools.ietf.org/html/rfc5892) - The Unicode Code Points and Internationalized Domain Names for Applications (IDNA)
184
-
[RFC 5893](http://tools.ietf.org/html/rfc5893) - Right-to-Left Scripts for Internationalized Domain Names for Applications (IDNA)
185
-
[RFC 5894](http://tools.ietf.org/html/rfc5894) - Internationalized Domain Names for Applications (IDNA): Background, Explanation, and Rationale
186
-
173
+
-[RFC 3454](http://tools.ietf.org/html/rfc3454) - Preparation of Internationalized Strings ("stringprep")
174
+
-[RFC 3490](http://tools.ietf.org/html/rfc3490) - Internationalizing Domain Names in Applications (IDNA)
175
+
-[RFC 3491](http://tools.ietf.org/html/rfc3491) - Nameprep: A Stringprep Profile for Internationalized Domain Names (IDN)
176
+
-[RFC 3492](http://tools.ietf.org/html/rfc3492) - Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)
177
+
-[RFC 5890](http://tools.ietf.org/html/rfc5890) - Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework
178
+
-[RFC 5891](http://tools.ietf.org/html/rfc5891) - Internationalized Domain Names in Applications (IDNA): Protocol
179
+
-[RFC 5892](http://tools.ietf.org/html/rfc5892) - The Unicode Code Points and Internationalized Domain Names for Applications (IDNA)
180
+
-[RFC 5893](http://tools.ietf.org/html/rfc5893) - Right-to-Left Scripts for Internationalized Domain Names for Applications (IDNA)
181
+
-[RFC 5894](http://tools.ietf.org/html/rfc5894) - Internationalized Domain Names for Applications (IDNA): Background, Explanation, and Rationale
0 commit comments