"এনকোডিং" বৈশিষ্ট্যটি বুঝতে, আপনাকে বাইট এবং অক্ষরের মধ্যে পার্থক্য বুঝতে হবে ।
বাইটগুলি 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
। এটি কীভাবে জানতে পারে যে এগুলি চরিত্রগুলি কী?
সিস্টেমটি সেই বাইটগুলি প্রকৃত অক্ষর হিসাবে ব্যাখ্যা করার জন্য (এবং সেগুলি প্রদর্শিত হবে বা তাদের অন্য এনকোডিংয়ে রূপান্তর করবে), এটি এক্সএমএলে ব্যবহৃত এনকোডিংটি জানতে হবে।
যেহেতু বেশিরভাগ সাধারণ এনকোডিংগুলি ASCII এর সাথে সামঞ্জস্যপূর্ণ, যতক্ষণ না বেসিক বর্ণানুক্রমিক অক্ষর এবং চিহ্নগুলি দেখা যায়, এই ক্ষেত্রে, ঘোষনাটি নিজেই কেবলমাত্র ASCII অক্ষর ব্যবহার করে এনকোডিংটি কী তা থেকে দূরে সরে যেতে পারে। অন্যান্য ক্ষেত্রে, পার্সার অবশ্যই ঘোষণার এনকোডিংটি চেষ্টা করে দেখতে হবে। যেহেতু এটি জানে যে ঘোষণাটি এর সাথে শুরু হয় <?xml
এটি করা খুব সহজ।
পরিশেষে, version
বৈশিষ্ট্যটি এক্সএমএল সংস্করণ নির্দিষ্ট করে, যার মধ্যে এই মুহূর্তে দুটি রয়েছে ( উইকিপিডিয়া এক্সএমএল সংস্করণগুলি দেখুন the সংস্করণগুলির মধ্যে সামান্য পার্থক্য রয়েছে, তাই কোনও এক্সএমএল পার্সার এটি কী কাজ করছে তা জানতে হবে most বেশিরভাগ ক্ষেত্রে (ইংরেজী ক্ষেত্রে যাইহোক স্পিকার), সংস্করণ 1.0 যথেষ্ট।