ইউনিকোড নরমালাইজেশন সম্পর্কে আপনি কখনই জানতে চাননি
ক্যানোনিকাল নরমালাইজেশন
ইউনিকোডে কয়েকটি অক্ষরকে এনকোড করার একাধিক উপায় রয়েছে, সর্বাধিক উল্লেখযোগ্যভাবে বর্ণিত অক্ষর। ক্যানোনিকাল নরমালাইজেশন কোড পয়েন্টগুলি ক্যানোনিকাল এনকোডিং আকারে পরিবর্তন করে। ফলস্বরূপ কোড পয়েন্টগুলি ফন্টে বা রেন্ডারিং ইঞ্জিনে কোনও বাগ ব্যতীত মূলগুলির সাথে সমান প্রদর্শিত হবে।
কখন ব্যবহার করতে হবে
ফলাফলগুলি অভিন্ন হিসাবে উপস্থিত হওয়ার কারণে, স্ট্রিং বা প্রদর্শনের আগে কোনও স্ট্রিংটিতে প্রথাগত স্বাভাবিককরণ প্রয়োগ করা সর্বদা নিরাপদ, যতক্ষণ না আপনি ফলাফলটি সামঞ্জস্য করতে পারেন যতক্ষণ না ইনপুটটির জন্য কিছুটা অভিন্ন নয়।
ক্যানোনিকাল নরমালাইজেশন 2 টি আকারে আসে: এনএফডি এবং এনএফসি। দুটি এই অর্থে সমান যে কেউ কোনও ক্ষতি ছাড়াই এই দুটি রূপের মধ্যে রূপান্তর করতে পারে। এনএফসি এর অধীনে দুটি স্ট্রিং তুলনা করা সর্বদা NFD এর সাথে তাদের তুলনা করার মতো ফলাফল দেয়।
NFD
এনএফডি-র অক্ষর সম্পূর্ণরূপে প্রসারিত হয়েছে। এটি গণনা করার জন্য দ্রুততর স্বাভাবিককরণ ফর্ম তবে আরও কোড পয়েন্টের ফলাফল (যেমন আরও স্থান ব্যবহার করে)।
যদি আপনি কেবল দুটি স্ট্রিংয়ের তুলনা করতে চান যা ইতিমধ্যে স্বাভাবিক করা যায় না, তবে এটি আপনার পছন্দসই স্বাভাবিককরণ ফর্মটি যদি না জেনে থাকে যে আপনার সামঞ্জস্যতা স্বাভাবিককরণের প্রয়োজন হয়।
NFC এর
এনএফডি অ্যালগরিদম চালানোর পরে যখন সম্ভব হয় কোড পয়েন্ট পুনরায় সংযুক্ত করে। এটি কিছুটা বেশি সময় নেয় তবে সংক্ষিপ্ত স্ট্রিংয়ের ফলাফল।
সামঞ্জস্যতা নরমালাইজেশন
ইউনিকোডে এমন অনেকগুলি অক্ষর অন্তর্ভুক্ত রয়েছে যা সত্যিকারের অন্তর্ভুক্ত নয় তবে তারা উত্তরাধিকার চরিত্রের সেটগুলিতে ব্যবহৃত হয়েছিল। ইউনিকোড এগুলি যোগ করে সেই অক্ষর সেটগুলিতে পাঠ্যটিকে ইউনিকোড হিসাবে প্রসেস করার অনুমতি দেয় এবং তারপরে বিনা ক্ষতিতে ফিরে রূপান্তরিত হয়।
সামঞ্জস্যতা নরমালাইজেশন এগুলিকে "বাস্তব" অক্ষরের সাথে সম্পর্কিত অনুক্রমগুলিতে রূপান্তরিত করে এবং ক্যানোনিকাল নরমালাইজেশন সম্পাদন করে। সামঞ্জস্যতা স্বাভাবিককরণের ফলাফলগুলি মূলগুলির সাথে একরকম নাও দেখাতে পারে।
অক্ষরগুলির মধ্যে ফর্ম্যাটিংয়ের তথ্য অন্তর্ভুক্ত হয় না এমনগুলির সাথে প্রতিস্থাপন করা হয়। উদাহরণস্বরূপ চরিত্রটি ⁹
রূপান্তরিত হয় 9
। অন্যদের বিন্যাসের পার্থক্য জড়িত না। উদাহরণস্বরূপ রোমান অঙ্কের অক্ষরটি Ⅸ
নিয়মিত অক্ষরে রূপান্তরিত হয়IX
।
স্পষ্টতই, একবার এই রূপান্তরটি সম্পাদিত হয়ে গেলে, ক্ষতি ছাড়াই মূল চরিত্রের সেটটিতে রূপান্তর করা আর সম্ভব হয় না।
কখন ব্যবহার করতে হবে
ইউনিকোড কনসোর্টিয়ামটি একটির মতো সামঞ্জস্যতা স্বাভাবিককরণের কথা ভাবার পরামর্শ দেয় ToUpperCase
ট্রান্সফর্মের । এটি এমন কিছু বিষয় যা কিছু পরিস্থিতিতে কার্যকর হতে পারে তবে আপনার এটি কেবল উইলি-নিলি প্রয়োগ করা উচিত নয়।
একটি দুর্দান্ত ব্যবহারের কেস একটি অনুসন্ধান ইঞ্জিন হবে যেহেতু আপনি সম্ভবত 9
মেলে এমন কোনও অনুসন্ধান চান⁹
।
একটি জিনিস যা আপনার সম্ভবত করা উচিত নয় তা হ'ল ব্যবহারকারীর সাথে সামঞ্জস্যতা স্বাভাবিককরণ প্রয়োগের ফলাফল প্রদর্শন করা।
NFKC / NFKD
সামঞ্জস্যতা স্বাভাবিককরণ ফর্মটি এনএফকেডি এবং এনএফকেসি দুটি রূপে আসে forms এনএফডি এবং সি এর মধ্যে তাদের একই সম্পর্ক রয়েছে have
এনএফকেসি-তে যে কোনও স্ট্রিং সহজাতভাবে এনএফসি-তেও হয় এবং এনএফকেডি এবং এনএফডি-র ক্ষেত্রেও একই থাকে। এইভাবে NFKD(x)=NFD(NFKC(x))
, এবং NFKC(x)=NFC(NFKD(x))
, ইত্যাদি
উপসংহার
যদি সন্দেহ হয় তবে ক্যানোনিকাল নরমালাইজেশন নিয়ে যান। স্থান / গতির ট্রেড-অফ প্রযোজ্য বা আপনার সাথে আন্তঃ-অপারেটিংয়ের জন্য প্রয়োজনীয় কোনও কিছুর উপর ভিত্তি করে এনএফসি বা এনএফডি চয়ন করুন।