Welche Unicode-Zeichen sind in IDN-Host-Labels zulässig?

8

Ich arbeite gerade an einem "richtigen" URI-Validator, und derzeit läuft alles auf die Validierung des Host-Namens hinaus; der Rest ist nicht so schwierig.

Ich stecke auf IDN-Hostnamen-Labels (d. h., die Unicode enthalten; mögliche Punycode-codierte Strings wurden zu diesem Zeitpunkt decodiert).

Meine erste Idee war im Grunde eine Regex für TLDs, die keine IDNs unterstützen, und eine für diejenigen, die dies tun. Dies könnte möglicherweise auf Mozillas Liste von IDN-fähigen TLDs basieren. Beziehungsweise, ^[a-zA-Z0-9\-]+$ und ^[a-zA-Z0-9\-\p{L}]+$ . Dies ist jedoch keine ideale Situation, da jeder IDN-Registrator entscheiden kann, welche Zeichen er zulassen soll.

Was ich suche, ist eine korrekte, konsistente, aktuelle Datentabelle der Unicode-Zeichen, die in verschiedenen TLDs erlaubt sind. Es sieht so aus, als müsste ich alle Daten selbst auf russischen und chinesischen Registrierungsseiten finden (was ziemlich schwierig ist).

Bevor ich also versuche, all diese Daten selbst zu sammeln, habe ich mich gefragt, ob eine solche Liste bereits existiert. Oder gibt es bessere Ansätze, beste / gängige Praktiken usw.? (Ich möchte, dass die Validierung so streng wie möglich ist.)

    
Roland Franssen 17.05.2010, 19:10
quelle

2 Antworten

2

IANA führt eine Liste aller Codepoints und deren Status unter Ссылка

Alle mit PVALID markierten sind sicher zu benutzen. Die mit CONTEXTO oder CONTEXTJ markierten Regeln müssen mehr Regeln folgen. Lesen Sie RFC5892 (IDNA) und RFC6452 (Ändern des Status einiger Zeichen) für alle blutigen Details.

    
Joe Hildebrand 31.07.2014 19:21
quelle
1

Können Sie nicht alle Unicode-Domains in punycode konvertieren und validieren? Da DNS keine echten UTF-8-Zeichen unterstützt, könnte dies die beste Lösung sein.

    
Byron Whitlock 17.05.2010 19:17
quelle

Tags und Links