টার্মিনাল: বিশেষ অক্ষর প্রদর্শন


11

কিছু প্রোগ্রামে যেমন htopলাইন এবং ফ্রেমগুলি সঠিকভাবে প্রদর্শিত হয় না। পরিবর্তে, তারা -এবং হিসাবে প্রদর্শিত হয় /

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

তবে অন্য মেশিনে এগুলি যথাযথ লাইন হিসাবে প্রদর্শিত হবে:

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

আমি নিশ্চিত নই যে এটি কোনও টার্মিনাল সমস্যা, বা সম্ভবত কিছু প্যাকেজ প্রয়োজন কিনা।

যদি এটি প্রাসঙ্গিক হয় তবে: আমার সিস্টেমটি ডেবিয়ান হুইজি, আমার দোভাষী bashএবং আমার টার্মিনাল এমুলেটরgnome-terminal


আপনি কি টার্মিনালের ব্যবহৃত ফন্টটি পরিবর্তন করার চেষ্টা করেছেন?
স্বর্ণলোক

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

উত্তর:


11

আপনার শীর্ষের উদাহরণটি অ-ইউনিকোড লোকাল (অর্থাত্ ASCII) দিয়ে চলছে। আপনার $ LANG পরিবেশের পরিবর্তনশীল পরীক্ষা করুন (চেষ্টা করুন export | grep LANG); আপনি সম্ভবত একটি .UTF-8প্রত্যয় পাবেন না । এটি যুক্ত করার চেষ্টা করুন:

export LANG=$LANG.UTF-8

আপনার অন্য উদাহরণটি কোনও ইউটিএফ -8 লোকেলের সাথে চলছে, যা সাম্প্রতিক শাঁসের জন্য ডিফল্ট হওয়া উচিত। দেখে মনে হচ্ছে এটি htopআপনার লোকেল সনাক্ত করে এবং এটি ASCII বা ইউনিকোড অক্ষর প্রদর্শন করে - সুতরাং নীচের ছবিতে আপনি দুর্দান্ত ইউনিকোড অক্ষর পাবেন, যখন ASCII এর সাথে আপনি কিছু সুন্দর অস্থায়ী চরিত্র পেয়ে যাবেন। আমি উপরের ছবিটির মেশিনের লোকেলটি একটি ইউনিকোডের মধ্যে পরিবর্তন করতে পরামর্শ দেব (দেখুন লোকেল - ডেবিয়ান উইকি )।

যদি এটি কাজ না করে তবে এটি হতে পারে যে আপনার টার্মিনাল এমুলেটরটি সমস্যা। ডিফল্ট এনকোডিং অ-ইউনিকোড হতে পারে। আপনার টার্মিনাল এমুলেটরটির ডিফল্ট এনকোডিংটি ইউটিএফ -8 এ পরিবর্তন করুন (এটি xfce4-terminalআমি অ্যাডভান্সড ট্যাবে পেয়েছি)। যদি আপনি না করতে পারেন তবে এটি হতে পারে আপনার বর্তমান ফন্টটি ইউনিকোড সমর্থন করে না: আপনার ফন্টটি ইউনিকোডে পরিবর্তন করার চেষ্টা করুন।

[আশ্চর্যের বিষয়, আমি একবার শেল সেশনে একবার আমি আমার লোকালকে ASCII এ htopপরিবর্তন করেছি, এএসসিআইআই অক্ষরগুলি পুনরায় পরিবর্তনের পরেও প্রদর্শন করি। এটি আপনার সমস্যা হতে পারে, যদি কোনও কারণে আপনি আপনার শেলটিতে মাঝে মধ্যে লোকাল পরিবর্তন করে থাকেন]]


3

অদ্ভুত বিষয়টি হ'ল htopএনক্রসগুলি ব্যবহার করে, যা ইউনিকোডের সাথে / ছাড়াই লাইন আঁকতে পারে। তবে উত্স-কোডটি দেখে CRT.cব্যাখ্যাটি বোঝায়:

#ifdef HAVE_LIBNCURSESW
   if(strcmp(nl_langinfo(CODESET), "UTF-8") == 0)
      CRT_utf8 = true;
   else
      CRT_utf8 = false;
#endif

   CRT_treeStr =
#ifdef HAVE_LIBNCURSESW
      CRT_utf8 ? CRT_treeStrUtf8 :
#endif
      CRT_treeStrAscii;

এবং CRT_treeStrUtf8মান হয়

const char *CRT_treeStrUtf8[TREE_STR_COUNT] = {
   "\xe2\x94\x80", // TREE_STR_HORZ ─
   "\xe2\x94\x82", // TREE_STR_VERT │
   "\xe2\x94\x9c", // TREE_STR_RTEE ├
   "\xe2\x94\x94", // TREE_STR_BEND └
   "\xe2\x94\x8c", // TREE_STR_TEND ┌
   "+",            // TREE_STR_OPEN +
   "\xe2\x94\x80", // TREE_STR_SHUT ─
};

যাইহোক, ncurses (কোনও অভিশাপ বাস্তবায়ন) এর জন্য পোর্টেবল প্রতীক রয়েছে যা এনকোডিংটি ইউটিএফ -8 কিনা তা নির্ভর করে না। (যেমন কিছু অ্যাপ্লিকেশান ডায়লগ এর --ascii-linesবিকল্প) একটি প্রদান বিকল্প হওয়া ASCII লাইন অঙ্কন ব্যবহার করার জন্য, কিন্তু একটি আবেদন যে এমনকি লাইন-অঙ্কন ncurses দেওয়া গ্রন্থাগার কার্যকর ব্যবহার উপার্জন করা হয় না ব্যবহার করার প্রচেষ্টা নেই।

সংক্ষেপে, আপনি যখন এমন কোনও প্রোগ্রাম জুড়ে আসেন যা এরকম আচরণ করে, আপনার এটি বিকাশ হিসাবে বিকাশকারীদের প্রতিবেদন করা উচিত।

আরও পড়া:


যদিও এটি সরাসরি আমার সমস্যার সমাধান করেনি ( প্রত্যাশিত ইউনিকোড লাইন অঙ্কন চরগুলি সেট LANG/ LC_ALLসক্ষম করে htop), এটি খুব আকর্ষণীয়। এটি ব্যাখ্যা করার জন্য সময় দেওয়ার জন্য ধন্যবাদ!
wrksprfct
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.