কীভাবে 'কম' কমান্ডটি ইউটিএফ -8 হ্যান্ডেল করবেন?


31

আমার ম্যাক টার্মিনালে, ইউটিএফ -8 মুদ্রণ সাধারণভাবে lessকাজ করে তবে সঠিকভাবে কাজ করে না।

সুতরাং এটি সঠিকভাবে কাজ করে:

$  echo -e '\xe2\x82\xac'   
€

তবে কম পাইপ দেওয়া এরকম কিছু দেয়:

$  echo -e '\xe2\x82\xac' | less  
<E2><82><AC>

এটা কিভাবে ঠিক হবে?

ডায়াগনস্টিক্সের জন্য:

আমি ম্যাক ওএস 10.6.8 ব্যবহার করছি। কম সংস্করণ 418, টার্মিনাল 2.1.2 (273.1)।

আমার লোকেলের আউটপুটটি হ'ল:

$ locale
LANG="en_US.UTF-8"
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL="C"

উত্তর:


43

ঠিক আছে, আমি কিছু গুগল করার পরে উত্তরটি পেয়েছি। স্পষ্টতই, LESSCHARSETএটি সেট করা দরকার:

export LESSCHARSET=utf-8

এখন lessআমার জন্য ভাল কাজ করে।


সেন্টোজেও আমার একই সমস্যা ছিল। এই লাইন এটি সেখানে স্থির করে।
উইম দেবলাওয়ে

9
আমার জন্য সমস্যার less -r
সমাধানটি

এটি ডেবিয়ান 8 এও কাজ করে, ধন্যবাদ!
লুকাফেরারিও

কেউ এই উত্তর গ্রহণ করা উচিত! এটি সমস্যার সমাধান করে।
লেন্সোভেট

2
less -rএকই জিনিসটি করে তবে ইমোজিগুলিও সঠিকভাবে পরিচালনা export LESSCHARSET=utf-8করে , যা না।
নোহ সুসমান

6

আপনি যদি কিছু ইউনিকোড অক্ষর দেখতে পান lessতবে lessইমোজি প্রদর্শন করতে অক্ষম হন , lessএকটি সাম্প্রতিক সংস্করণে আপগ্রেড করার চেষ্টা করুন । ম্যাক ওএস এক্স-এ, আমি সংস্করণটি 458 থেকে 481 এ গিয়েছি এবং এটি আমার সমস্যার সমাধান করেছে (উদাহরণস্বরূপ, git logএখন প্রতিশ্রুতি বার্তাগুলিতে ইমোজি প্রদর্শন করতে পারে)।

আপনার যদি হোমব্রু থাকে তবে আপনি চালিয়ে নতুন সিস্টেমে সিস্টেমটি কম প্রতিস্থাপন করতে পারেন brew install homebrew/dupes/less


ধন্যবাদ! হোমব্রিউয়ের নতুন সংস্করণগুলির সাথে brew install lessআপনার আপগ্রেড করা দরকার need
অ্যালেক্স সিমিনিয়ান

2

আমার সাথে কাজ করে

LANG=
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"

3
এলসি_সিটিওয়াইপি গুরুত্বপূর্ণ। তবে কম ব্যবহার করা নিয়মগুলি উদ্ভট: লোকেল থেকে এনকোডিংটি পুনরুদ্ধার করার পরিবর্তে এটি এর নাম "utf-8" (বা আরও কয়েকটি সম্ভাব্য) স্ট্রিংয়ের সন্ধান করে o সুতরাং যদি আপনি কিছু চান তবে আপনাকে LESSCHARSET ব্যবহার করতে হবে অন্যান্য এনকোডিং বা যদি আপনার স্থানীয় নামটি কম ধারণার ধারণাগুলির সাথে মেলে না।
রিচার্ড কেটেলওয়েল

1

আমি এটি গুগল করেছিলাম এবং নিম্নলিখিত পরিবেশের ভেরিয়েবলগুলি চেষ্টা করেছি যা আমার জন্য কাজ করেছে:

export LC_ALL=en_US.UTF-8
export LANG=en_us.UTF-8

আমি একাধিক পৃথক উত্তরে LC_ALL দেখতে পাই বলে আমি মনে করি এটি সঠিক। তবে সম্ভবত একমাত্র সঠিক উত্তর নয়, অবশ্যই এই প্রশ্নের আরও সঠিক উত্তর থাকতে পারে।

যাইহোক আরও কিছু গুগলিং আমাকে ভেরিয়েবলের জন্য এই বিবরণটি দিয়েছিল:

LC_ALL এই পরিবর্তনশীলটি সমস্ত স্থানীয় বিভাগের মান নির্ধারণ করে। LC_ALL এনভায়রনমেন্ট ভেরিয়েবলের মান LC_ (LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME) এবং ল্যাং এনভায়রনমেন্ট ভেরিয়েবলের সাথে শুরু হওয়া অন্য যে কোনও পরিবেশের ভেরিয়েবলের চেয়ে অগ্রাধিকার রয়েছে।

উত্স: http://pubs.opengroup.org/onlinepubs/007908799/xbd/envvar.html

এই সবগুলিকে শাসন করার জন্য এটি ভাষা পরিবর্তনশীল বলে আমাকে ভাবতে পরিচালিত করে :)


lessসংস্করণ নম্বর পোস্ট করতে বিনা দ্বিধায় দয়া করে ।
হরিণ হান্টার

নিশ্চিত, কম 458 (জিএনইউ নিয়মিত এক্সপ্রেশন)
মেলভিন লুস

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