আমি ভাবছিলাম যে কোনও পাঠ্য ফাইলগুলি পরে ডিকোডিংয়ের জন্য তাদের পাঠ্য সামগ্রীর সাথে তাদের এনকোডিং পদ্ধতি সঞ্চয় করে?
মার্ক সিজমানস্কির উত্তর সঠিক - একটি সরল পাঠ্য ফাইলটিতে সুস্পষ্ট এনকোডিংয়ের কোনও তথ্য নেই - এটি "প্লেইন টেক্সট ফাইল" এর সংজ্ঞা, "প্লেইন" ফাইলটিতে কোনও মেটা-ডেটা নেই বলে বোঝায়।
তবে কিছু অ্যাপ্লিকেশন UTF-16 বা UTF-32 / UCS-4 হিসাবে এনকোডযুক্ত পাঠ্য ফাইলগুলিতে একটি বাইট-অর্ডার চিহ্ন (বিওএম) রাখবে place বিএমটি প্রকৃতপক্ষে এনকোডিংটি নির্দেশ করার জন্য নয় (এটি নাম অনুসারে বাইট অর্ডার নির্দেশ করে), তবে অনেকগুলি অ্যাপ্লিকেশন বিওএমের উপস্থিতিকে ইউটিএফ -16 / ইউটিএফ -32 সনাক্ত করতে ব্যবহার করবে, সুতরাং এটি এনকোডিং সূচক হিসাবে কাজ করে।
অথবা প্রদত্ত পাঠ্য ফাইলের জন্য এনকোডিং পদ্ধতিটি অনুমান করা পাঠ্য দর্শকের কাজ এবং অনুমান করা সবসময় সঠিক নাও হতে পারে? যদি হ্যাঁ, তবে কোনও পাঠ্যদায়ক কীভাবে অনুমান করতে পারেন?
হ্যাঁ, পাঠ্যদায়ক কেবল অনুমান করতে পারেন। এটি সাধারণত কিছু তাত্পর্যপূর্ণ ব্যবহার করে:
- কিছু এনকোডিংগুলিতে (উল্লেখযোগ্যভাবে ইউটিএফ -8 এ) সমস্ত বাইট সিকোয়েন্স বৈধ নয়। সুতরাং একটি অ্যাপ্লিকেশন কেবল ফাইলটিকে ইউটিএফ -8 হিসাবে ডিকোড করার চেষ্টা করতে পারে। এটি সফল হলে ফাইলটি সম্ভবত ইউটিএফ -8; যদি এটি একটি অবৈধ বাইট ক্রম সন্ধান করে ব্যর্থ হয় তবে তা নয়। উদাহরণস্বরূপ
vim
: ডিফল্টরূপে এটি কাজ করে: ফাইলটি পড়ার সময় এটি প্রথমে ইউটিএফ -8 ব্যবহার করার চেষ্টা করবে; যদি এটি ব্যর্থ হয় তবে এটি আইএসও -8859-1-এ ফিরে যায়।
- বেশিরভাগ পুরানো 8-বিট এনকোডিংগুলিতে, কোনও বাইট অনুক্রম বৈধ। সেক্ষেত্রে আপনি কখনও কখনও বাইট হিস্টোগ্রাম (বিভিন্ন বাইট / বাইট ক্রমের ফ্রিকোয়েন্সি) দেখে এনকোডিংটি অনুমান করতে পারেন। ইন্টারনেট এক্সপ্লোরার কোনও পৃষ্ঠার এনকোডিংটি "অনুমান" করার জন্য এটি করত। তবে এটি খুব ত্রুটিযুক্ত-প্রবণ, তাই খুব কম প্রোগ্রাম এটি করে do
বেশিরভাগ ক্ষেত্রে, একটি প্রোগ্রামকে অবশ্যই একটি টেক্সট ফাইলের এনকোডিং কী তা স্পষ্ট করে জানিয়ে দিতে হবে, অন্যথায় এটি সঠিকভাবে পড়তে সক্ষম হবে না।