কেন ইউনিকোড অক্ষর সঠিকভাবে রেন্ডারিং হয় না


18

পটভূমি:

  • আমি আমার প্রম্পটে কিছু ইউনিকোড অক্ষর আছে (জিট স্ট্যাটাস চিহ্নিতকারীরা মূলত)
  • আমি এক্সক্স লিনাক্সে xfce এর অধীনে urxvt চালাচ্ছি।
  • আমি Powerline ফন্টের জন্য DejaVu Sans Mono ব্যবহার করছি, এক্সক্সোর্স লাইনের মাধ্যমে নির্দিষ্ট:

    URxvt*font: xft:DejaVu Sans Mono for Powerline:pixelsize=14

যখন আমি urxvt শুরু করি তখন ইউনিকোড অক্ষর সঠিকভাবে রেন্ডার করে না।

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

● হিসাবে রেন্ডার

তবে, যদি আমি একটি নতুন শুরু urxvt ভিতরে প্রথম টার্মিনাল সবকিছু সঠিকভাবে রেন্ডার।

দুই টার্মিনালের মধ্যে পরিবেশে কোন পার্থক্য নেই বলে মনে হচ্ছে।

প্রথম আমন্ত্রণ এবং নেস্টেড আমন্ত্রণ মধ্যে পার্থক্য কি হতে পারে? আমি মনে করি ফন্টটি 'বাইরের' উদাহরণে সঠিক নয়, তবে আমি চলমান এক্স উইন্ডোটির ফন্ট কিভাবে পরীক্ষা করব তা নিশ্চিত নই।

হালনাগাদ : মনে হচ্ছে xfce4 এর জন্য অ্যাপ্লিকেশান লঞ্চারে লোকেল সঠিকভাবে সেট আপ করা হয় না, তবে সম্ভবত প্রথম টার্মিনালের ভিতরে শেলটি তার নিজস্ব লোকেলকে অন্তর্ভূক্ত করে, যার অর্থ উভয় শেলগুলিতে একই লোকেল থাকে।

যোগ

export LANG=en_GB.UTF-8

xfce4 শুরু করার আগে .xinitrc এটিকে ঠিক করতে বলে মনে হচ্ছে। আমি এই না সন্দেহ ঠিক উপায়, কিন্তু এটা আমার জন্য যথেষ্ট ভাল কাজ করে।

স্ক্রিনশট সমস্যা প্রদর্শন করে:

enter image description here

দ্রষ্টব্য: আমি serverfault.com থেকে এই প্রশ্নটি সরানো হয়েছে - আমি আশা করি এই সাইটটি আরো উপযুক্ত


কিভাবে আপনি এক্স শুরু করবেন? কিভাবে আপনি "প্রথম" টার্মিনাল শুরু করবেন? মনে হচ্ছে পরিবেশ দুটোই ভিন্ন।
Ярослав Рахматуллин

চালানোর চেষ্টা করুন LC_ALL=ru_RU.utf8 urxvt বর্তমান এক্স অধিবেশন থেকে। যদি রাশিয়ান (এবং অন্যান্য ইউনিকোড) অক্ষর সঠিক হয়ে যায় তবে আপনার পরিবেশ সি সি লোকেলে চলমান অবস্থায় থাকলে। তাই জন্য locale সেটিংস চেক করুন xfce। উদাহরণস্বরূপ, যদি আপনি এটি শুরু হয় .xinitrc মত চালানোর আগে লোকেল সেট করার চেষ্টা করুন LANG=ru_RU.utf8 exec startxfce4
Alexander I.Grafov

উত্তর:


12

সমস্যাটির কারণ কী তা সম্পূর্ণরূপে আমি নিশ্চিত নই, তবে নিচের পদক্ষেপগুলি সাহায্য করতে পারে:

  1. লোকাল সঠিকভাবে সেট আপ করা হয় তা নিশ্চিত করুন

    $ locale
    LANG=en_US.UTF-8
    LC_CTYPE="en_US.UTF-8"
    LC_NUMERIC="en_US.UTF-8"
    LC_TIME="en_US.UTF-8"
    LC_COLLATE="en_US.UTF-8"
    LC_MONETARY="en_US.UTF-8"
    LC_MESSAGES="en_US.UTF-8"
    LC_PAPER="en_US.UTF-8"
    LC_NAME="en_US.UTF-8"
    LC_ADDRESS="en_US.UTF-8"
    LC_TELEPHONE="en_US.UTF-8"
    LC_MEASUREMENT="en_US.UTF-8"
    LC_IDENTIFICATION="en_US.UTF-8"
    LC_ALL=en_US.UTF-8
    
  2. /Etc/locale.gen এবং চালানো পছন্দসই লোকেল সক্রিয় করুন locale-gen

    $ cat /etc/locale.gen |grep UTF
    en_US.UTF-8 UTF-8
    nb_NO.UTF-8 UTF-8
    ru_RU.UTF-8 UTF-8
    
  3. পছন্দসই ফন্ট লোড করা যাবে তা নিশ্চিত করুন

    $ xset +fp /usr/share/fonts/cyrillic
    $ fc-cache
    $ fc-list # to check
  4. "প্রথম টার্মিনাল" শুরু করার আগে .Xdefaults (বা অনুরূপ) থেকে সেটিংস প্রয়োগ করুন।
    xrdb ~/.Xdefaults


এটি স্পষ্টভাবে লোকেলের সাথে করতে হবে (প্রশ্নটির আমার আপডেটটি দেখুন), তাই এই উত্তরটি গ্রহণ করে সঠিক দিকনির্দেশনা হিসাবে আমাকে নির্দেশ করে। Thnks।
sw1nn

এটি সাধারণত ~ / .bash_profile (~ / .zprofile) তে লোকেল সেটিংস স্থাপন করার ভয়ানক ধারণা নয়, তবে ~ / .xinitrc খুব কাজ করবে।
Ярослав Рахматуллин

যদি আমি ভার্চুয়াল টার্মিনালে লগইন করি (অর্থাৎ এক্স ছাড়াই) এটি সব কাজ করে। শেল বিট সূক্ষ্ম কাজ করছে, এটি এক্স এর জন্য নির্দিষ্ট
sw1nn

সম্ভবত কারণ X (বা startxfce) একটি অ-লগইন শেল থেকে শুরু হয় যা LANG & amp; একটি প্রোফাইল থেকে সহ। ব্যাশের জন্য, ~ / .bashrc অ-লগইন শেলগুলির জন্য স্টাফ সেট করতে ব্যবহার করা যেতে পারে। কিন্তু আমি বললাম, ~ / .xinitrc এ আপনার স্থানীয় সেটিংস এবং অন্যান্য ভেরিয়েবলগুলি রেখে কোনও ভুল নেই।
Ярослав Рахматуллин

চিঠি স্পেসিং খুব ঘনিষ্ঠ হওয়ার কারণে এই সমস্যাটি সমস্ত অক্ষরকেও প্রভাবিত করতে পারে। উদাহরণস্বরূপ, সেট URxvt.letterSpace: -10 এবং সব অক্ষর বক্স হিসাবে প্রদর্শন
DavisDude

0

আমার জন্য এটি urxvt মধ্যে পাওয়ারলাইন glyphs সঙ্গে একটি সমস্যা ছিল। শুধু সঙ্গে লোকেল সেটিং খুঁজে পাওয়া যায় নি localectl set-locale LANG=en_AU.UTF-8 আমার জন্য সমস্যাটি সমাধান করে, কমপক্ষে শক্তিমান ফন্টটি ফন্ট (অন্যান্য ফন্ট চেষ্টা করে নি)

urxvt powerline symbols

এটা সঙ্গে কাজ করা হয় নি en_US.UTF-8, আমি নিশ্চিত যে আমি এটি পুনরুত্পাদন করতে পারি ... এখন এটি অদ্ভুত ... কিন্তু এটি এখন কাজ করে।

সূত্র

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