একটি এনকোডিং হ'ল একটি অক্ষর সেট থেকে বাইট এবং অক্ষরগুলির মধ্যে একটি ম্যাপিং, তাই বাইট এবং অক্ষরের মধ্যে পার্থক্যটি আলোচনা করা এবং বোঝা সহায়ক ।
বাইটগুলি 0 এবং 255 এর মধ্যে সংখ্যা হিসাবে মনে করুন, যেখানে অক্ষরগুলি "a", "1", "$" এবং "Ä" এর মতো বিমূর্ত জিনিস। উপলব্ধ সমস্ত অক্ষরের সেটকে একটি অক্ষর সেট বলে ।
প্রতিটি চরিত্রের এক বা একাধিক বাইটের ক্রম রয়েছে যা এর প্রতিনিধিত্ব করতে ব্যবহৃত হয়; যাইহোক, বাইটের সঠিক সংখ্যা এবং মান ব্যবহৃত এনকোডিংয়ের উপর নির্ভর করে এবং অনেকগুলি বিভিন্ন এনকোডিং রয়েছে।
বেশিরভাগ এনকোডিংগুলি পুরানো অক্ষর সেট এবং এএসসিআইআই নামক এনকোডিংয়ের উপর ভিত্তি করে যা প্রতিটি চরিত্রের জন্য একক বাইট (প্রকৃতপক্ষে কেবলমাত্র 7 বিট) থাকে এবং এতে ইউএস ইংরাজীতে ব্যবহৃত প্রচলিত প্রচলিত অক্ষর সহ 128 টি অক্ষর রয়েছে।
উদাহরণস্বরূপ, ASCII অক্ষর সেটটিতে এখানে 6 টি অক্ষর রয়েছে যা 60 থেকে 65 এর মান দ্বারা প্রতিনিধিত্ব করা হয়।
Extract of ASCII Table 60-65
╔══════╦══════════════╗
║ Byte ║ Character ║
╠══════╬══════════════║
║ 60 ║ < ║
║ 61 ║ = ║
║ 62 ║ > ║
║ 63 ║ ? ║
║ 64 ║ @ ║
║ 65 ║ A ║
╚══════╩══════════════╝
সম্পূর্ণ ASCII সেটটিতে ব্যবহৃত সর্বনিম্ন মানটি শূন্য এবং সর্বাধিক 127 হয় (এটি উভয়ই লুকানো নিয়ন্ত্রণের অক্ষর)।
তবে একবারে আপনার যখন বেসিক ASCII সরবরাহ করে তার চেয়ে বেশি অক্ষরের প্রয়োজন শুরু হয় (উদাহরণস্বরূপ, উচ্চারণ, মুদ্রার চিহ্ন, গ্রাফিক প্রতীক ইত্যাদি) সহ, ASCII উপযুক্ত নয় এবং আপনার আরও কিছু বিস্তৃত প্রয়োজন। আপনার আরও অক্ষর প্রয়োজন (একটি আলাদা অক্ষর সেট) এবং আপনার একটি পৃথক এনকোডিং দরকার কারণ 128 টি অক্ষর সমস্ত অক্ষরের সাথে খাপ খায় যথেষ্ট নয় Some কিছু এনকোডিংগুলি একটি বাইট (256 অক্ষর) বা ছয় বাইট পর্যন্ত অফার করে।
সময়ের সাথে সাথে প্রচুর এনকোডিং তৈরি করা হয়েছে। উইন্ডোজ বিশ্বে, সিপি 1252, বা আইএসও -8859-1 রয়েছে, যেখানে লিনাক্স ব্যবহারকারীরা ইউটিএফ -8 সমর্থন করে। জাভা ইউটিএফ -16 স্থানীয়ভাবে ব্যবহার করে।
একটি এনকোডিংয়ের একটি অক্ষরের জন্য বাইট মানগুলির একটি অনুক্রম অন্য এনকোডিংয়ে সম্পূর্ণ ভিন্ন চরিত্রের জন্য দাঁড়িয়ে থাকতে পারে বা অবৈধও হতে পারে।
উদাহরণস্বরূপ, আইএসও 8859-1 , একটি ¢ একটি মান এক বাইট দ্বারা প্রতিনিধিত্ব করা হয় 226
, যেহেতু এ হল UTF-8 এটিকে দুটি বাইট: 195, 162
। যাইহোক, এ আইএসও 8859-1 , 195, 162
দুই অক্ষর, হবে , একটি ¢ ।
কম্পিউটারগুলি অক্ষর সম্পর্কে তথ্য অভ্যন্তরীণভাবে সঞ্চয় করে বা অন্য সিস্টেমে প্রেরণ করে, তারা বাইটগুলি সঞ্চয় করে বা প্রেরণ করে। কোনও ফাইল কোনও ফাইল খোলার বা বার্তা প্রাপ্তির বাইটগুলি দেখে কল্পনা করুন 195, 162
। এটি কীভাবে জানতে পারে যে এগুলি চরিত্রগুলি কী?
সিস্টেমটি সেই বাইটগুলি প্রকৃত চরিত্র হিসাবে ব্যাখ্যা করার জন্য (এবং সেগুলি প্রদর্শিত বা তাদের অন্য এনকোডিংয়ে রূপান্তর করে), এটি ব্যবহৃত এনকোডিংটি জানতে হবে। এজন্য এক্সএমএল শিরোনামে এনকোডিং প্রদর্শিত হবে বা কোনও পাঠ্য সম্পাদককে নির্দিষ্ট করা যেতে পারে। এটি সিস্টেমকে বাইটস এবং অক্ষরের মধ্যে ম্যাপিংয়ের কথা বলে।