ইন্টারনেটে বিভিন্ন জিনিস সনাক্ত করতে হলে, সমতা যাচাই করার জন্য বিভিন্ন আইডেন্টিফিকেশন তুলনা করা প্রয়োজন। তুলনা প্রসিডিউর অ্যাপ্লিকেশন ডোমেনের ওপর নির্ভর করে। উদাহরণস্বরূপ, কিছু জিনিস কেস-ইনসেনসিটিভ ইত্যাদি। এই ধরণের ইনফরমেশন চেক করার জন্য stringprep ব্যবহার করা হয়।
RFC 3454 ইউনিকোড স্ট্রিংয়ের প্রস্তুত করার প্রসিডিউর ডিফাইন করে তার preko তার মাধ্যমে ট্রান্সমিট করার আগে। প্রস্তুতির প্রসিডিউর দিয়ে যাওয়ার পর, তাদের একটি নির্দিষ্ট নর্মালাইজড ফরম থাকে।
RFC একটি সেট টেবিল ডিফাইন করে; এই টেবিলগুলো প্রোফাইলে কম্বাইন করা যায়। উদাহরণস্বরূপ stringprep-এর একটি প্রোফাইল হলো nameprep। nameprep-এ ইন্টারন্যাশনালাইজড ডোমেইন नेম রয়েছে।
দুই ধরনের টেবিল রয়েছে, set এবং mappings। যদি একটি ক্যারেক্টার সেট টেবিলে উপস্থিত থাকে, তবে এটি true ফেরত দেবে, অন্যথায় false। ম্যাপিং টেবিলের জন্য, যখন কী পাস করা হয়, তবে এটি asosiatеd ভ্যালু ফেরত দেবে।
এই মডিউলগুলো ব্যবহার করতে হলে, আমাদের কোডে stringprep মডিউল ইম্পোর্ট করতে হবে।
import stringprep
stringprep টেবিলগুলো -
| Sr.No. | Tables & Description |
|---|---|
| 1 | stringprep.in_table_a1(code) ইউনিকোড ৩.২-এ অনসাইনড কোড পয়েন্ট |
| 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