ভিডিও ওমপ্লেয়ারে সাবটাইটেল ফাইল নিয়ে আমার কিছু সমস্যা ছিল। এটি সমাধান করার জন্য আমাকে উইন্ডোজ -1250 থেকে ইউটিএফ -8 এনকোডিংয়ে রূপান্তর করতে হয়েছিল। আমার প্রশ্নটি হল, আমি কীভাবে কোনও নির্দিষ্ট ফাইলের জন্য দেখতে পারি যা কোন এনকোডিংটি ব্যবহৃত হয়?
ভিডিও ওমপ্লেয়ারে সাবটাইটেল ফাইল নিয়ে আমার কিছু সমস্যা ছিল। এটি সমাধান করার জন্য আমাকে উইন্ডোজ -1250 থেকে ইউটিএফ -8 এনকোডিংয়ে রূপান্তর করতে হয়েছিল। আমার প্রশ্নটি হল, আমি কীভাবে কোনও নির্দিষ্ট ফাইলের জন্য দেখতে পারি যা কোন এনকোডিংটি ব্যবহৃত হয়?
উত্তর:
মূলত X এনকোডিং সহ কোনও ফাইল লেখা হয়েছিল কিনা তা আপনি স্বয়ংক্রিয়ভাবে সন্ধান করতে পারবেন না।
আপনি সহজেই যা করতে পারেন তা হ'ল একটি নির্দিষ্ট কোডেক ব্যবহার করে সম্পূর্ণ ফাইলটি কোনওভাবেই ডিকোড করা যায় (তবে প্রয়োজনীয়ভাবে সঠিক নয়) তা যাচাই করা। যদি আপনি এমন কোনও বাইটস খুঁজে পান যা প্রদত্ত এনকোডিংয়ের জন্য বৈধ নয় তবে এটি অন্যরকম কিছু হতে হবে।
সমস্যাটি হ'ল অনেক কোডেক একই রকম এবং একই "বৈধ বাইট প্যাটার্ন" থাকে, কেবল তাদের আলাদা আলাদা অক্ষর হিসাবে ব্যাখ্যা করে। উদাহরণস্বরূপ, একটি ä
ইনকোডিংয়ের সাথে é
অন্য কোনও বা ø
তৃতীয়টির সাথে মিল থাকতে পারে । সঠিকভাবে মানব পাঠযোগ্য পাঠ্যগুলিতে বাইট ফলাফলগুলি ব্যাখ্যা করার জন্য কম্পিউটারটি সত্যিকারভাবে সনাক্ত করতে পারে না (যদি না আপনি যদি সকল ধরণের ভাষার জন্য অভিধান যোগ করেন এবং এটি বানান চেক সম্পাদন না করেন ...)। আপনার অবশ্যই এটি অবশ্যই জেনে রাখা উচিত যে কিছু চরিত্র সেটগুলি অন্যের সাবসেট হয়, যেমন ASCII এনকোডিং এএনএসআই পরিবার বা ইউটিএফ -8 এর মতো সাধারণভাবে ব্যবহৃত কোডেকগুলির একটি অংশ। এর অর্থ উদাহরণস্বরূপ, কোনও ইউটিএফ -8 হিসাবে সংরক্ষিত একটি পাঠ্য যাতে কেবল সহজ লাতিন অক্ষর থাকে, এটি ASCII হিসাবে সংরক্ষণ করা একই ফাইলের সমান হবে।
তবে আসুন আপনি যা করতে পারবেন না তা ব্যাখ্যা করে ফিরে আসুন আপনি আসলে যা করতে পারেন:
এএসসিআইআই / নন-এএসসিআইআই (সাধারণত ইউটিএফ -8) পাঠ্য ফাইলগুলিতে প্রাথমিক চেক করার জন্য, আপনি file
কমান্ডটি ব্যবহার করতে পারেন । যদিও এটি অনেক কোডেককে জানে না এবং এটি কেবল কোনও ফাইলের প্রথম কয়েক কেবি পরীক্ষা করে, ধরে নিয়েছে যে বাকীগুলিতে কোনও নতুন অক্ষর থাকবে না। অন্যদিকে, এটি অন্যান্য সাধারণ ফাইল প্রকারগুলি যেমন বিভিন্ন স্ক্রিপ্ট, এইচটিএমএল / এক্সএমএল ডকুমেন্টস এবং অনেক বাইনারি ডেটা ফর্ম্যাটগুলি (যা পাঠ্য ফাইলগুলির তুলনা করার জন্য সমস্ত উদ্বেগজনক) স্বীকৃতি দেয় এবং এটি অতিরিক্ত তথ্য মুদ্রণ করতে পারে যেখানে খুব দীর্ঘ লাইন আছে বা কি ধরণের নিউলাইন সিকোয়েন্স (যেমন ইউনিক্স: এলএফ, উইন্ডোজ: সিআর + এলএফ) ব্যবহৃত হয়।
$ cat ascii.txt
I am an ASCII file.
Just text and numb3rs and simple punctuation...
$ cat utf8.txt
I am a Unicode file.
Special characters like Ω€®Ŧ¥↑ıØÞöäüß¡!
$ file ascii.txt utf8.txt
ascii.txt: ASCII text
utf8.txt: UTF-8 Unicode text
যদি এটি পর্যাপ্ত না হয় তবে আমি এই উত্তরের জন্য আমি লিখেছিলাম পাইথন স্ক্রিপ্টটি এখানে দিতে পারি , যা সম্পূর্ণ ফাইলগুলি স্ক্যান করে এবং একটি নির্দিষ্ট অক্ষর সেট ব্যবহার করে সেগুলি ডিকোড করার চেষ্টা করে। যদি এটি সফল হয় তবে enc এনকোডিংটি সম্ভাব্য প্রার্থী। অন্যথায় যদি এমন কোনও বাইট থাকে যা এর সাথে ডিকোড করা যায় না, তবে আপনি সেই তালিকাটি আপনার তালিকা থেকে সরিয়ে নিতে পারেন।
নামের একটি প্রোগ্রাম এটি file
করতে পারে। উদাহরণ:
$ echo aaa >> FILE
$ file FILE
FILE: ASCII text, with CRLF, LF line terminators
$ echo öäü >> FILE
$ file FILE
FILE: UTF-8 Unicode text, with CRLF, LF line terminators
আপনি যদি এটি দেখতে কিভাবে আগ্রহী হন src/encoding.c
।
file
অনুমান করে এবং প্রায়শই এটি খুব ভাল হয় না। উদাহরণস্বরূপ, আমার পরীক্ষায়, এটি ম্যাক্রোম্যান এবং সিপি-1252 দুটিকেই আইএসও -8859 হিসাবে চিহ্নিত করেছে, যার ফলে "š" এবং "ß" স্ক্র্যাম্বল হয়েছিল।
.sql
ফাইলটির সঠিক এনকোডিং খুঁজে পেতে কয়েক ঘন্টা ব্যয় করেছেন এবং file
আমার কাছে দেখিয়েছেন যে এটি সত্যিই একটি gzip
সংকোচিত ফাইল!
piconv
এনকোডিং পরিবর্তন করতে;)