ইউনিকোড প্রচুর পরিমাণে বিভিন্ন এনকোডিং থাকার পুরো বিষয়টি আবিষ্কার করার জন্য তৈরি করা হয়নি।
ইউনিকোডটি ব্যবহারের কোড পৃষ্ঠার উপর নির্ভর করে বিভিন্ন সংখ্যা উপস্থাপন করে এমন একটি সংখ্যাটির পুরো সংখ্যাটি ঘুরে দেখার জন্য ডিজাইন করা হয়েছিল। নম্বর 0 - 127 কোনও আনসি কোড পৃষ্ঠাতে একই অক্ষর উপস্থাপন করে। এটিই এএসসিআইআই চার্ট বা চরিত্র সেট হিসাবে পরিচিত। আনসি কোড পৃষ্ঠাগুলিতে, যা 256 টি অক্ষরের জন্য মঞ্জুরি দেয়, 128 - 255 সংখ্যাগুলি বিভিন্ন কোড পৃষ্ঠাগুলিতে বিভিন্ন বর্ণের প্রতিনিধিত্ব করে।
উদাহরণ স্বরূপ
- সংখ্যা $ 57 সমস্ত কোড পৃষ্ঠাগুলিতে একটি মূলধন ডাকে উপস্থাপন করে তবে
- সংখ্যা $ ইসি কোড পৃষ্ঠা 437 (মার্কিন) -তে অনন্যতার প্রতীক উপস্থাপন করে, তবে কোড পৃষ্ঠা 775 (বাল্টিক) -র একটি "ল্যাটিন স্মার্ট লেটার এন উইথ সিডিল্লা"
- সেন্ট সাইনটি কোড পৃষ্ঠাতে 439 নম্বরের, তবে কোড পৃষ্ঠা 775 নম্বরে number
ইউনিকোড যা করেছে, তা এই সমস্তটাকে উল্টে ফেলা হয়েছিল। ইউনিকোডে কোনও "পুনরায় ব্যবহার" নেই। প্রতিটি সংখ্যা একটি একক অনন্য চরিত্রকে উপস্থাপন করে। ইউনিকোডে $ 00A2 সংখ্যাটি সেন্ট সাইন এবং সেন্ট চিহ্নটি ইউনিকোড সংজ্ঞায় অন্য কোথাও উপস্থিত হয় না।
তাহলে কেন এত ইউনিকোড এনকোডিং রয়েছে? এমনকি ইউটিএফ -8, ইউটিএফ -16 ইত্যাদি ইত্যাদির একাধিক সংস্করণ (মূলত)
একই এনকোডিংয়ের একাধিক সংস্করণ নেই। একই ইউনিকোড চরিত্র সংজ্ঞা মানচিত্রের একাধিক এনকোডিং রয়েছে এবং ইউনিকোডে বিদ্যমান বিভিন্ন ভাষাগত বিমানের বিভিন্ন ব্যবহারের জন্য স্টোরেজ প্রয়োজনীয়তার জন্য এটি "উদ্ভাবিত" করা হয়েছে।
ইউনিকোড সংজ্ঞায়িত করে (বা সংজ্ঞায়িত করার জায়গা রয়েছে) 4.294.967.295 অনন্য অক্ষর। আপনি যদি কোনও অ্যালগরিদমিক রূপান্তর না করে ডিস্ক / মেমরি স্টোরেজে এগুলি মানচিত্র করতে চান তবে আপনার প্রতি অক্ষর 4 বাইট লাগবে। আপনার যদি সমস্ত ভাষাগত বিমানের অক্ষরগুলি সহ পাঠ্য সংরক্ষণের প্রয়োজন হয়, তবে ইউটিএফ -32 (যা মূলত একটি সরল 1 অক্ষর - ইউনিকোড সংজ্ঞাটির 4 বাইট স্টোরেজ এনকোডিং) সম্ভবত আপনার যা প্রয়োজন।
তবে খুব সহজেই কোনও পাঠ্য সমস্ত ভাষাগত বিমানের অক্ষর ব্যবহার করে। এবং তারপরে অক্ষরে 4 বাইট ব্যবহার করা একটি বড় অপচয় বলে মনে হচ্ছে। বিশেষত আপনি যখন বিবেচনায় রাখেন যে পৃথিবীর বেশিরভাগ ভাষাগুলি বেসিক মাল্টি-ল্যাঙ্গুয়াল প্লেন (বিএমপি) হিসাবে পরিচিত সেই অঞ্চলে সংজ্ঞায়িত করা হয়: ইউনিকোড সংজ্ঞাটির প্রথম 65536 সংখ্যা।
এবং ইউটিএফ -16 যেখানে এসেছিল তা হ'ল আপনি যদি কেবল বিএমপি থেকে অক্ষর ব্যবহার করেন তবে ইউটিএফ -16 অক্ষর প্রতি দুটি বাইট ব্যবহার করে খুব দক্ষতার সাথে এটি সংরক্ষণ করবে। এটি BMP এর বাইরের অক্ষরের জন্য আরও বাইট ব্যবহার করবে। ইউটিএফ -16 এলই (লিটল এন্ডিয়ান) এবং ইউটিএফ -16 বিই (বিগ এন্ডিয়ান) এর মধ্যে পার্থক্যটি কেবল কম্পিউটারের মেমরির মধ্যে নম্বরগুলি কীভাবে উপস্থাপিত হয় (বাইট প্যাটার্ন A0
যার অর্থ হেক্স $ এ0 বা অর্থ $ 0 এ) রয়েছে তার কিছু করার আছে।
আপনার পাঠ্য যদি পশ্চিমা ইউরোপীয় ভাষাগুলির বেশিরভাগ পাঠ্যের মতো আরও কিছু কম অক্ষরও ব্যবহার করে তবে আপনি আরও বেশি করে আপনার পাঠ্যের স্টোরেজ প্রয়োজনীয়তা সীমাবদ্ধ রাখতে চাইবেন। সুতরাং ইউটিএফ -8, যা এএসসিআইআই চার্টে উপস্থিত অক্ষরগুলি (প্রথম 128 সংখ্যা) এবং আনসি অক্ষর (বিভিন্ন কোড পৃষ্ঠাগুলির দ্বিতীয় 128 সংখ্যা) থেকে একটি নির্বাচন করে সংরক্ষণ করতে একক বাইট ব্যবহার করে। এটি এই "সর্বাধিক ব্যবহৃত অক্ষর" সেটটির বাইরে অক্ষরের জন্য আরও বাইট ব্যবহার করবে।
তাই পুনরুদ্ধার:
- ইউনিকোড হ'ল পৃথিবীর সমস্ত ভাষায় অক্ষরের ম্যাপিং (এবং কিছু ক্লিঙ্গন বুট করার জন্য) এবং তারপরে কিছু (গাণিতিক, সংগীত ইত্যাদি) একটি অনন্য সংখ্যায়।
- এনকোডিংগুলি পাঠ্যের মধ্যে অক্ষরের "গড় ব্যবহার" হিসাবে দক্ষতার সাথে যথাসম্ভব দক্ষতার সাথে এই অনন্য চরিত্রের মানচিত্রের সংখ্যা ব্যবহার করে পাঠ্যগুলি সঞ্চয় করতে সংজ্ঞায়িত অ্যালগরিদম।