2010-05-17 9 views
8

मैं वर्तमान में "उचित" यूआरआई सत्यापनकर्ता पर काम कर रहा हूं, और वर्तमान में यह सब होस्टनाम सत्यापन के लिए नीचे आता है; बाकी मुश्किल नहीं है।आईडीएन होस्ट लेबल में कौन से यूनिकोड वर्णों की अनुमति है?

मैं आईडीएन होस्टनाम लेबल पर अटक गया हूं (यानी, यूनिकोड युक्त; संभावित पन्योड एन्कोडेड तारों को इस बिंदु पर डीकोड किया गया है)।

मेरा पहला विचार मूल रूप से टीएलडी के लिए एक रेगेक्स था जो आईडीएन का समर्थन नहीं करता है और जो लोग करते हैं उनके लिए एक। यह शायद Mozilla’s list of IDN-enabled TLDs पर आधारित हो सकता है। आदरणीय, ^[a-zA-Z0-9\-]+$ और ^[a-zA-Z0-9\-\p{L}]+$। हालांकि, यह एक आदर्श स्थिति नहीं है, क्योंकि प्रत्येक आईडीएन रजिस्ट्रार यह तय कर सकता है कि कौन से पात्रों को अनुमति है।

जो मैं खोज रहा हूं वह विभिन्न टीएलडी में अनुमत यूनिकोड वर्णों की एक उचित, सुसंगत, अद्यतित डेटा तालिका है। ऐसा लगता है कि मुझे रूसी और चीनी रजिस्ट्री साइटों (जो काफी मुश्किल है) में खुद को सभी डेटा मिलना है।

तो इससे पहले कि मैं अपने सभी डेटा को इकट्ठा करने की कोशिश कर रहा हूं, मुझे आश्चर्य हुआ कि ऐसी सूची पहले से मौजूद है या नहीं। या क्या बेहतर दृष्टिकोण हैं, सर्वोत्तम/सामान्य प्रथाओं आदि? (मैं सत्यापन को यथासंभव सख्त होना चाहता हूं।)

उत्तर

1

क्या आप सभी यूनिकोड डोमेन को पन्योडोड में परिवर्तित नहीं कर सकते हैं और उसे सत्यापित कर सकते हैं? चूंकि DNS वास्तविक यूटीएफ -8 वर्णों का समर्थन नहीं करता है, इसलिए यह सबसे अच्छा समाधान हो सकता है।

+0

सच .. मैंने भी इसके बारे में सोचा। हालांकि यह उपयोगकर्ता इनपुट के बारे में है .. मैं अपने उपयोगकर्ताओं को यूरी के पहले punycode में परिवर्तित करने के लिए नहीं बता सकता। तो यह मुझे (जिसे आप शायद मतलब था) को आंतरिक रूप से पन्योडोड में परिवर्तित कर देता है ... फिर भी इसका मतलब यह नहीं है कि मेजबाननाम वास्तव में मान्य होना चाहिए (अगर मैं गलत हूं तो मुझे सही करें), इसलिए उस मामले में किसी भी यूनिकोड वर्ण (\ पी {एल}) और इसे वैध मानते हुए मूल रूप से वही बात है। आखिरी विकल्प मेरी फॉलबैक विधि होगी यदि मैं एक अच्छे समाधान में नहीं आ सकता; यदि यह मामला होने जा रहा है तो क्या आप सूची मोज़िला को प्रदान करने का सुझाव देंगे (उदा। 2 रेगेक्स)? –

+0

उपरोक्त को साफ़ करने के लिए; टीएलडी की मोज़िज़िला पर सूचीबद्ध -> [ए-जेए-जेड -9-9 \ - \ पी {एल}]/अन्य सभी टीएलडी -> [ए-जेडए-जेड 0-9 \ -] क्या यह उचित सत्यापन होगा? –

2

IANA https://www.iana.org/assignments/idna-tables-6.3.0/idna-tables-6.3.0.xhtml#idna-tables-properties

द्वारा चिह्नित PVALID के सभी उपयोग करने के लिए सुरक्षित हैं पर कोड पॉइंट्स और उनकी स्थिति के सभी की एक सूची रखता। CONTEXTO या CONTEXTJ चिह्नित चिह्नित करने के लिए अधिक नियम हैं। सभी गोरी विवरणों के लिए RFC5892 (आईडीएनए) और RFC6452 (कुछ वर्णों की स्थिति बदलना) पढ़ें।

संबंधित मुद्दे