অক্ষর এনকোডিংগুলি আরও বেশি, বিড়াল এবং আরও কম দ্বারা সমর্থিত


18

নিম্নলিখিত অনুযায়ী আমার কাছে একটি পাঠ্য ফাইল এনকোড করা আছে file:

সিআরএলএফ লাইন টার্মিনেটর সহ ISO-8859 পাঠ্য

এই ফাইলটিতে অ্যাকসেন্ট সহ ফরাসি পাঠ্য রয়েছে। আমার শেল অ্যাকসেন্ট প্রদর্শন করতে emacsসক্ষম এবং কনসোল মোডে এই অ্যাকসেন্টগুলি সঠিকভাবে প্রদর্শন করতে সক্ষম।

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

উত্তর:


17

আপনার শেলটি উচ্চারণ ইত্যাদি প্রদর্শন করতে পারে কারণ এটি সম্ভবত ইউটিএফ -8 ব্যবহার করছে। যেহেতু প্রশ্নে থাকা ফাইলটি আলাদা এনকোডিং, less moreএবং catএটি ইউটিএফ হিসাবে পড়ার চেষ্টা করছে এবং ব্যর্থ হয়েছে। আপনি আপনার বর্তমান এনকোডিং দিয়ে যাচাই করতে পারেন

echo $LANG

আপনার দুটি পছন্দ আছে, আপনি হয় নিজের ডিফল্ট এনকোডিং পরিবর্তন করতে পারেন, বা ফাইলটি ইউটিএফ -8 এ পরিবর্তন করতে পারেন। আপনার এনকোডিং পরিবর্তন করতে, একটি টার্মিনাল খুলুন এবং টাইপ করুন

export LANG="fr_FR.ISO-8859"

উদাহরণ স্বরূপ:

$ echo $LANG 
en_US.UTF-8
$ cat foo.txt 
J'ai mal � la t�te, c'est chiant!
$ export LANG="fr_FR.ISO-8859"
$ xterm <-- open a new terminal 
$ cat foo.txt 
J'ai mal à la tête, c'est chiant!

আপনি যদি ব্যবহার করছেন gnome-terminalবা অনুরূপ, আপনার এনকোডিং সক্রিয় করার প্রয়োজন হতে পারে উদাহরণস্বরূপ terminatorডান ক্লিক এবং:

এখানে চিত্র বর্ণনা লিখুন

এর জন্য gnome-terminal:

এখানে চিত্র বর্ণনা লিখুন

আপনার অন্যান্য (আরও ভাল) বিকল্পটি হ'ল ফাইলটির এনকোডিং পরিবর্তন করা:

$ cat foo.txt 
J'ai mal � la t�te, c'est chiant!
$ iconv -f ISO-8859-1 -t UTF-8  foo.txt > bar.txt
$ cat bar.txt 
J'ai mal à la tête, c'est chiant!

4

লিনাক্স সিস্টেমগুলির জন্য আইএসও -8858 অক্ষর এনকোডিংগুলি কিছুটা পুরানো। আপনার সম্পূর্ণ লিনাক্স সিস্টেমটি সম্ভবত সমস্তভাবে ইউটিএফ -8 ব্যবহার করছে। আপনার টার্মিনাল এমুলেটর এবং আপনার শেল সহ।

যাহোক. cat, grepএবং lessকোনও এনকোডিং রূপান্তর করবেন না, তারা আপনার আইএসও -8859 / লাতিন 1 ফাইলটিকে ইউটিএফ -8 হিসাবে বিবেচনা করবে, যা কাজ করবে না।

যদি ইমাসগুলি সেগুলি প্রদর্শন করতে সক্ষম হয়, কারণ এটি ব্যবহৃত এনকোডিংটি স্বয়ংক্রিয়ভাবে আবিষ্কার করার চেষ্টা করে এবং দৃশ্যত সফল হয়। ইউটিএফ -8 হিসাবে ফাইলটি সংরক্ষণ করতে ইমাসকে বলুন এবং আপনি এতে cat/ grep/ যা কিছু ব্যবহার করতে সক্ষম হবেন ।

আপনি যদি সঠিক চরিত্রের এনকোডিং জানেন (আইএসও -8859 এগুলির একটি সংগ্রহ, আপনার সঠিকটি অবশ্যই জানতে হবে: আইএসও -8859-1 বা আইএসও -8859-15 বা আরও খারাপ), আপনি কমান্ড লাইন থেকে আপনার ফাইলগুলিও রূপান্তর করতে পারবেন :

iconv --from-code ISO-8859-15 your_file -o your_file_as_utf8

2

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

লুইটি সমর্থিত এনকোডিংগুলি এবং ইউটিএফ -8 এর মধ্যে অনুবাদ করে। আপনি LC_CTYPEপরিবেশটিকে পরিবর্তনশীল সেট করে অথবা -encodingবিকল্পের সাহায্যে কোন এনকোডিংটি লিউটকে অনুবাদ করতে বলেছেন । উদাহরণস্বরূপ, ল্যাটিন -1 (ওরফে আইএসও 8859-1) ফাইলটি প্রদর্শন করতে:

LC_CTYPE=en_US luit less somefile
luit -encoding ISO8859-1 less somefile

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

iconv -f latin1 somefile
iconv -f latin1 somefile | less
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.