পাঠ্য ফাইলগুলি কি পরে ডিকোডিংয়ের জন্য তাদের এনকোডিং পদ্ধতি সঞ্চয় করে?


19
  1. আমি ভাবছিলাম যে কোনও পাঠ্য ফাইলগুলি পরে ডিকোডিংয়ের জন্য তাদের পাঠ্য সামগ্রীর সাথে তাদের এনকোডিং পদ্ধতি সঞ্চয় করে?
  2. অথবা প্রদত্ত পাঠ্য ফাইলের জন্য এনকোডিং পদ্ধতিটি অনুমান করা পাঠ্য দর্শকের কাজ এবং অনুমান করা সবসময় সঠিক নাও হতে পারে? যদি হ্যাঁ, তবে কোনও পাঠ্যদায়ক কীভাবে অনুমান করতে পারেন?

যদি এটি একটি সরলখুলি ফাইল হয়, তবে এটি এনকোডিং সম্পর্কে কিছুই সঞ্চয় করে না। যদিও আমি সমৃদ্ধ পাঠ্যের জন্য বলতে পারি না।
ওফার্স

হ্যাঁ, আমি সরলরেখার কথা বলছি।
টিম

উত্তর:


19

আমি ভাবছিলাম যে কোনও পাঠ্য ফাইলগুলি পরে ডিকোডিংয়ের জন্য তাদের পাঠ্য সামগ্রীর সাথে তাদের এনকোডিং পদ্ধতি সঞ্চয় করে?

মার্ক সিজমানস্কির উত্তর সঠিক - একটি সরল পাঠ্য ফাইলটিতে সুস্পষ্ট এনকোডিংয়ের কোনও তথ্য নেই - এটি "প্লেইন টেক্সট ফাইল" এর সংজ্ঞা, "প্লেইন" ফাইলটিতে কোনও মেটা-ডেটা নেই বলে বোঝায়।

তবে কিছু অ্যাপ্লিকেশন UTF-16 বা UTF-32 / UCS-4 হিসাবে এনকোডযুক্ত পাঠ্য ফাইলগুলিতে একটি বাইট-অর্ডার চিহ্ন (বিওএম) রাখবে place বিএমটি প্রকৃতপক্ষে এনকোডিংটি নির্দেশ করার জন্য নয় (এটি নাম অনুসারে বাইট অর্ডার নির্দেশ করে), তবে অনেকগুলি অ্যাপ্লিকেশন বিওএমের উপস্থিতিকে ইউটিএফ -16 / ইউটিএফ -32 সনাক্ত করতে ব্যবহার করবে, সুতরাং এটি এনকোডিং সূচক হিসাবে কাজ করে।

অথবা প্রদত্ত পাঠ্য ফাইলের জন্য এনকোডিং পদ্ধতিটি অনুমান করা পাঠ্য দর্শকের কাজ এবং অনুমান করা সবসময় সঠিক নাও হতে পারে? যদি হ্যাঁ, তবে কোনও পাঠ্যদায়ক কীভাবে অনুমান করতে পারেন?

হ্যাঁ, পাঠ্যদায়ক কেবল অনুমান করতে পারেন। এটি সাধারণত কিছু তাত্পর্যপূর্ণ ব্যবহার করে:

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

বেশিরভাগ ক্ষেত্রে, একটি প্রোগ্রামকে অবশ্যই একটি টেক্সট ফাইলের এনকোডিং কী তা স্পষ্ট করে জানিয়ে দিতে হবে, অন্যথায় এটি সঠিকভাবে পড়তে সক্ষম হবে না।


সুতরাং file -biবিওএম ব্যবহার না করা হলে কীভাবে কাজ করবে?
ওল্ড গিজার

@ ওলডিজার: fileফাইলের ধরণ এবং এনকোডিং নির্ধারণের জন্য বিভিন্ন হিউরিস্টিকস রয়েছে। বেশিরভাগ ক্ষেত্রে এটি ফাইলের নির্দিষ্ট স্ট্রিং বা বাইট সিকোয়েন্সগুলির সন্ধান করে। আপনি যদি আরও নির্দিষ্ট তথ্য চান, আপনার সম্ভবত উত্সটি পড়তে হবে। অথবা কেবল একটি পৃথক প্রশ্ন জিজ্ঞাসা করুন :-)।
সলেসকে

@ ওলডিজার: এবং বিটিডাব্লু, fileবেশিরভাগ পাঠ্য এনকোডিংগুলি নির্ভরযোগ্যভাবে সনাক্ত করতে পারে না (কারণ এটি খুব কঠিন)। ম্যান পৃষ্ঠায় অক্ষর সেট সনাক্তকরণ সম্পর্কিত কিছু তথ্য রয়েছে - fileবেশিরভাগই কেবল ASCII, UTF-8/16, EBCDIC, এবং ISO-8859-x স্বীকৃতি দেয়। উদাহরণস্বরূপ, কেওআই 8-আর এ এনকোড করা একটি ফাইলকে "আইএসও -8859-1" হিসাবে রিপোর্ট করা হয়েছে।
sleske

4

সাধারণ পাঠ্য ফাইলগুলি তাদের এনকোডিং সম্পর্কিত কোনও তথ্য সঞ্চয় করে না। আপনি যে চরিত্রের জন্য এটি সেট করেছেন সেটি এনকোডিংয়ের উপর ভিত্তি করে একটি দর্শক এটি নির্ধারণ করে। এটি নিজে থেকে এটি নির্ধারণ করতে পারে না, যেহেতু এটি কম্পিউটারের সাথে সমস্ত কিছু।


সুতরাং পাঠ্য দর্শকদের পাঠ্য ফাইলগুলির জন্য এনকোডিং পদ্ধতিগুলির মধ্যে পার্থক্য করতে পারে না। যদি কোনও পাঠ্য দর্শকের কোনও অবজেক্ট / এক্সিকিউটেবল ফাইল দেওয়া হয়, তবে এটি কি এটি বলতে সক্ষম হবে যে এটি কোনও পাঠ্য ফাইল নয়?
টিম

না, এটা পারে না। এটি একটি পাঠ্য ফাইলের মতো এটি খোলার চেষ্টা করবে। এবং অবশ্যই গার্ল্ড স্টাফগুলির একটি গুচ্ছ প্রদর্শন করবে। আপনি যদি ম্যানুয়ালি এনকোডিংটি পরিবর্তন করেন তবে এনকোডিংয়ের মধ্যে পার্থক্য করার জন্য আপনি কেবল এটি পেতে পারেন।
ওয়েফার্স

@ টিম: বেশিরভাগ পাঠ্য দর্শক কোনও পাঠ্য ফাইল কিনা তা যাচাই করার জন্য একটি তাত্ত্বিক ব্যবহার করেন। যদি ফাইলটিতে অনেকগুলি মুদ্রণযোগ্য অক্ষর থাকে তবে অনেক দর্শক এবং সম্পাদক সতর্ক করে দেবেন (যেমন lessএবং grepইউনিক্স / লিনাক্স এ এটি করেন)।
sleske
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.