Skip to content

Commit 0324ac2

Browse files
committed
IDN: Formatierung/Grammatik
1 parent 16d3ff9 commit 0324ac2

File tree

1 file changed

+34
-39
lines changed

1 file changed

+34
-39
lines changed

http-domain-url-filesystem/09_idn.md

Lines changed: 34 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ layout: guide
33

44
permalink: /jumpto/idna/
55
root: ../..
6-
title: " Internationalisierte Domainnamen (IDN) / Punycode"
6+
title: "Internationalisierte Domainnamen (IDN) / Punycode"
77
group: "HTTP / Domain / URL / Requests / Dateisystem"
88
orderId: 9
99

@@ -13,53 +13,48 @@ author:
1313
profile: 21246
1414

1515
inhalt:
16-
- name: "Begriffserklärung"
16+
- name: "Begriffserklärung"
1717
anchor: begriffserklaerung
1818
simple: "IDN, Punycode, Beispiele, E-Mail-Adressen"
1919

20-
- name: "Anwendungsgebiete in PHP"
20+
- name: "Anwendungsgebiete in PHP"
2121
anchor: anwendungsgebiete-in-php
2222
simple: "Wann ist was zu tun?"
2323

24-
- name: "Konvertierung in Punycode"
24+
- name: "Konvertierung in Punycode"
2525
anchor: konvertierung
2626
simple: "externe Klassen, PHP-Boardmittel"
2727

28-
- name: "RFC zum Thema IDN(A) / Punycode"
28+
- name: "RFC zum Thema IDN(A) / Punycode"
2929
anchor: rfc-zum-thema-idn-a-punycode
3030
simple: ""
3131

32-
3332
entry-type: in-discussion
3433
---
3534

36-
37-
3835
## [Begriffserklärung](#begriffserklaerung)
3936
{: #begriffserklaerung}
4037

4138
### [IDN (*Internationalized domain name*)](#idn-internationalized-domain-name)
4239
{: #idn-internationalized-domain-name}
4340

44-
[Wikipedia:](http://de.wikipedia.org/wiki/Internationalisierter_Domainname)
41+
[Wikipedia](http://de.wikipedia.org/wiki/Internationalisierter_Domainname):
4542

4643
> 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+
>
4845
> 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.
4946
50-
5147
### [Punycode](#punycode)
5248
{: #punycode}
5349

54-
[Wikipedia:](http://de.wikipedia.org/wiki/Punycode)
50+
[Wikipedia](http://de.wikipedia.org/wiki/Punycode):
5551

5652
> 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.
5753
58-
5954
### [Beipiele](#beipiele)
6055
{: #beipiele}
6156

62-
Beispiele von IDN - mit entsprechender Punycodedarstellung
57+
Beispiele von IDN mit entsprechender Punycode-Darstellung:
6358

6459
~~~
6560
müller.de → xn--mller-kva
@@ -84,37 +79,39 @@ Pelé@example.com → [email protected]
8479
~~~
8580

8681

82+
8783
## [Anwendungsgebiete in PHP](#anwendungsgebiete-in-php)
8884
{: #anwendungsgebiete-in-php}
8985

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:
9187

9288
- `file_get_contents()`
9389
- `checkdnsrr()`
9490
- `filter_var($email, FILTER_VALIDATE_EMAIL)` zur [E-Mail-Validierung]({{ page.root }}/jumpto/standard-mail-validation/#filtervar)
95-
- etc ...
91+
-
9692

97-
98-
#### [cURL - Zusatzinfo](#curl-zusatzinfo)
93+
### [Zusatzinfo für cURL](#curl-zusatzinfo)
9994
{: #curl-zusatzinfo}
10095

10196
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.
10297

10398
![cURL phpinfo()]({{ page.root }}/images/idn-phpinfo.jpg)
10499

105100

101+
106102
## [Konvertierung](#konvertierung)
107103
{: #konvertierung}
108104

109105
### [Externe Punycode-Klasse](#externe-punycode-klasse)
110106
{: #externe-punycode-klasse}
111107

112-
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].
113109

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).
115-
116-
Einige Beispiele mit dieser Klasse
110+
[Suchmaschine]: https://duckduckgo.com/?q=!g+php+(punycode+OR+idna+converter)
111+
[idna_convert]: http://phlymail.com/de/downloads/idna-convert.html
112+
[OPK]: http://idnaconv.phlymail.de/?lang=de
117113

114+
Einige Beispiele mit dieser Klasse:
118115

119116
~~~ php
120117
require 'idna_convert.class.php';
@@ -141,8 +138,7 @@ echo $idn->encode($domain);
141138
// xn-----8kcayoeblonkwzf2jqc1b.xn--p1ai
142139
~~~
143140

144-
145-
E-Mail-Adressen
141+
E-Mail-Adressen:
146142

147143
~~~ php
148144
$email = 'pelé@example.com';
@@ -154,33 +150,32 @@ echo $idn->encode($email);
154150
155151
~~~
156152

157-
158153
### [PHP-Boardmittel](#php-boardmittel)
159154
{: #php-boardmittel}
160155

161-
Wenn folgende Voraussetzungen erfüllt sind ...
156+
Wenn folgende Voraussetzungen erfüllt sind
162157

163158
> PHP 5 >= 5.3.0, [PECL intl >= 1.0.2](http://pecl.php.net/package/intl), [PECL idn >= 0.1](http://pecl.php.net/package/idn)
164159
165-
... 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.
166161

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:
168163

169164
~~~ php
170-
var_dump(function_exists('idn_to_ascii')); // true oder false
165+
var_dump(function_exists('idn_to_ascii')); // true oder false
171166
~~~
172167

173168

169+
174170
## [RFC zum Thema IDN(A) / Punycode](#rfc-zum-thema-idn-a-punycode)
175171
{: #rfc-zum-thema-idn-a-punycode}
176172

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

Comments
 (0)