2016-05-14 21 views
0

Beim Testen scheint es, als ob der Versuch, sowohl IDNs als auch reguläre Domainnamen zu konvertieren, "einfach funktioniert" - zB wenn die Eingabe nicht geändert werden muss, wird punycode nur die Eingabe zurückgeben.Kann ich alle Domain-Namen als IDNs ohne irgendwelche negativen Auswirkungen behandeln?

punycode.toASCII('lancôme.com'); 

kehrt:

'xn--lancme-lxa.com' 

Und

punycode.toASCII('apple.com'); 

kehrt:

'apple.com' 

Das sieht gut aus, aber es ist überall angegeben? Kann ich alles sicher in Punycode umwandeln?

Antwort

1

Das ist richtig. Wenn Sie sich ansehen, wie die Prozedur zum Konvertieren von Unicode-Zeichenfolgen in ascii punycode ist, ändert der Prozeß nur irgendwelche Nicht-ASCII-Zeichen. Da reguläre Domänen keine nicht-ASCII-Zeichen enthalten können, wird bei korrekter Implementierung des Konverters niemals eine reine ASCII-Zeichenfolge umgewandelt.

Sie können mehr darüber lesen, wie Unicode konvertiert wird hier Punycode: https://en.wikipedia.org/wiki/Punycode

Punycode in RFC angegeben wird 3492: https://www.ietf.org/rfc/rfc3492.txt, und es sagt klar:

"Grundcodepunkt Segregation" ist ein sehr einfach und effiziente Codierung für grundlegende Codepunkte in der erweiterten Zeichenfolge auftreten: Sie werden einfach alle auf einmal kopiert.

Wenn Ihre erweiterte Zeichenkette aus grundlegenden Codepunkten besteht, wird sie einfach ohne Änderung kopiert.

+0

Gerne als korrekt markieren, wenn Sie eine Referenz hinzufügen. – mikemaccana

+0

@mikemaccana die beste Referenz ist immer die Spezifikation :) – Wladston

+0

vereinbart - danke! – mikemaccana