इंटरनेट में विभिन्न चीजों की पहचान करने के लिए, विभिन्न पहचानों की तुलना समानता के लिए करना आवश्यक है। तुलना प्रक्रिया एप्लिकेशन डोमेन पर निर्भर करती है। उदाहरण के लिए, कुछ चीजें केस-इनसेंसिटिव होती हैं आदि। इस तरह की जानकारी की जांच के लिए stringprep का उपयोग किया जाता है।
RFC 3454 वायर के माध्यम से ट्रांसमिट करने से पहले यूनिकोड स्ट्रिंग्स को तैयार करने की प्रक्रिया को परिभाषित करता है। तैयारी प्रक्रिया से गुजरने के बाद, उनका एक निश्चित नॉर्मलाइज़्ड फॉर्म होता है।
RFC टेबल्स का एक सेट परिभाषित करता है; इन टेबल्स को प्रोफाइल्स में जोड़ा जा सकता है। उदाहरण के लिए stringprep का एक प्रोफाइल nameprep है। nameprep में, अंतर्राष्ट्रीयकृत डोमेन नाम हैं।
दो प्रकार की टेबल्स हैं, set और mappings। यदि कोई कैरेक्टर सेट टेबल में मौजूद है, तो यह true लौटाएगा, अन्यथा false। मैपिंग टेबल्स के लिए, जब कुंजी पास की जाती है, तो यह संबद्ध मान लौटाएगा।
इस मॉड्यूल का उपयोग करने के लिए, हमें अपने कोड में stringprep मॉड्यूल आयात करने की आवश्यकता है।
import stringprep
stringprep टेबल्स हैं:
| Sr.No. | टेबल्स और विवरण |
|---|---|
| 1 | stringprep.in_table_a1(code) यह यूनिकोड 3.2 में अनसाइन्ड कोड पॉइंट्स हैं |
| 2 | stringprep.in_table_b1(code) यह आमतौर पर कुछ भी नहीं मैप किया जाता है। |
| 3 | stringprep.in_table_b2(code) कोड के लिए टेबल B.2 पर मैप्ड वैल्यू लौटाएं। NFKC केस-फोल्डिंग के लिए मैपिंग। |
| 4 | stringprep.in_table_b3(code) नॉर्मलाइज़ेशन के बिना केस-फोल्डिंग मैपिंग। |
| 5 | stringprep.in_table_c11(code) ASCII स्पेस कैरेक्टर्स |
| 6 | stringprep.in_table_c12(code) नॉन-ASCII स्पेस कैरेक्टर्स |
| 7 | stringprep.in_table_c11_c12(code) ASCII और नॉन-ASCII स्पेस कैरेक्टर्स का संयोजन |
| 8 | stringprep.in_table_c21(code) ASCII कंट्रोल कैरेक्टर्स |
| 9 | stringprep.in_table_c22(code) नॉन-ASCII कंट्रोल कैरेक्टर्स |
| 10 | stringprep.in_table_c21_c22(code) ASCII और नॉन-ASCII कंट्रोल कैरेक्टर्स का संयोजन |
| 11 | stringprep.in_table_c3(code) प्राइवेट यूज के लिए कैरेक्टर्स |
| 12 | stringprep.in_table_c4(code) नॉन-कैरेक्टर कोड पॉइंट्स |
| 13 | stringprep.in_table_c5(code) सरोगेट कोड्स |
| 14 | stringprep.in_table_c6(code) प्लेन टेक्स्ट कैरेक्टर्स के लिए अनुपयुक्त |
| 15 | stringprep.in_table_c7(code) कैनोनिकल प्रतिनिधित्व के लिए अनुपयुक्त |
| 16 | stringprep.in_table_c8(code) डिस्प्ले प्रॉपर्टी चेंज कोड्स |
| 17 | stringprep.in_table_c9(code) टैगिंग कैरेक्टर्स |
| 18 | stringprep.in_table_d1(code) कैरेक्टर्स, जिनमें 'R' और 'AL' बाइडायरेक्शनल प्रॉपर्टी है। |
| 19 | stringprep.in_table_d2(code) कैरेक्टर्स, जिनमें 'L' बाइडायरेक्शनल प्रॉपर्टी है। |
उदाहरण कोड
import stringprep as sp
print('\u0020') # स्पेस कैरेक्टर
print(sp.in_table_c11('\u0020')) # यह ASCII स्पेस कैरेक्टर्स के अंदर है
print(sp.in_table_d2('L')) # लेटर L में लेफ्ट-टू-राइट बाइडायरेक्शनल प्रॉपर्टी है
print(sp.in_table_d1('L')) # लेटर L में राइट-टू-लेफ्ट के लिए कोई बाइडायरेक्शनल प्रॉपर्टी नहीं है
आउटपुट
True True False