কমান্ড সহ টার্মিনালের এনকোডিং স্যুইচ করুন


24

সার্ভারগুলির মধ্যে একটি আমি প্রায়শই sshutf-8 এর পরিবর্তে ওয়েস্টার্ন এনকোডিং ব্যবহার করি (এবং এটি পরিবর্তন করার কোনও উপায় নেই)।

আমি এই সার্ভারের সাথে সংযোগ রাখতে একটি বাশ স্ক্রিপ্ট লেখা শুরু করেছি, তাই আমাকে প্রতিবারই পুরো ঠিকানাটি টাইপ করতে হবে না, তবে আমি এই স্ক্রিপ্টটি উন্নত করতে চাই যাতে এটি টার্মিনাল উইন্ডোটির এনকোডিংও সঠিকভাবে পরিবর্তন করে।

আমার যে পরিবর্তনটি করা দরকার তা মাউস ব্যবহার করে "টার্মিনাল" -> "অক্ষর এনকোডিং সেট করুন ..." -> "পশ্চিমা (আইএসও -8859-1)" এ নেভিগেট করে সম্পাদন করা যেতে পারে। বর্তমান টার্মিনাল উইন্ডো / স্ক্রিনের জন্য কি টার্মিনাল কমান্ড একই কাজ করে?

নির্মল করতে:
আমি না দূরবর্তী সাইটে সিস্টেমের লোকেল সুইচিং এর উপায়ে আগ্রহী - যে সিস্টেম তা কারো না কারো দ্বারা পরিচালিত হয়, এবং আমি কি কোন ধারণা কাপড় সেখানে এনকোডিং ল্যাটিন -1 উপর নির্ভর করতে পারি। আমি যা করতে চাই তা হল আমার সাইড স্যুইচ চরিত্রের এই টার্মিনাল উইন্ডোটিকে উপরের উল্লিখিতটিতে এনকোডিং করতে দেওয়া, একইভাবে আমি আমার মাউস এবং মেনুগুলির সাথে করতে পারি।


ভাল প্রশ্ন! এনকোডিং সমস্যাগুলি প্রায়শই একটি পিআইটিএ ... এটি এমন একটি উপায় যা কাজ করবে না ... unix.stackexchange.com/questions/8859/…
লম্ব্রিক

2
বন্ধ কীভাবে সম্ভব যে আমার উত্তর গৃহীত হয়েছে তবে অনুগ্রহ অন্য একজনের কাছে গেল? :) :(
törzsmókus

1
@ törzsmókus: আপনি (নতুন?) অনুগ্রহ সংক্রান্ত নিয়ম সম্পর্কে এখানে পড়তে পারেন: blog.stackoverflow.com/2010/06/ सुधार / টো-বন্টি-সিস্টেমস যদি অনুগ্রহকারী মালিক 7 দিনের অনুদানের সময়কালে অনুদানটি না দেয়, আগের মতো একই অটো-অ্যাওয়ার্ডের বিধিগুলি প্রযোজ্য: অনুগ্রহ শুরু হওয়ার পরে পোস্ট করা প্রশ্নের কোনও উত্তর, কমপক্ষে 2 টি আপগ্রেস সহ, স্বতঃ-গ্রহণযোগ্যতার জন্য যোগ্য এবং অর্ধেক অনুমানের পরিমাণ অর্জন করতে পারে। যদি এই মানদণ্ড পূরণ করে কোন উত্তর না থাকে তবে কোনও অনুদান প্রদান করা হয় না। - এবং আবারও, সমস্ত অনুগ্রহ সম্পূর্ণরূপে স্বতন্ত্র এবং উত্তর গ্রহণের সাথে সম্পর্কিত নয়।
রুন

উত্তর:


18

আপনি যা খুঁজছেন luitযা এই উদ্দেশ্যে ডিজাইন করা হয়েছে:

$ luit -encoding ISO-8859-1 ssh remote.host

এটি ssh কমান্ডের আউটপুটটি ইউটিএফ -8 এ রূপান্তর করবে তাই আপনাকে টার্মিনালের এনকোডিং পরিবর্তন করার দরকার নেই।


2
এটা সঠিক। যাইহোক, আমি লাইটের ম্যান পৃষ্ঠা থেকে এই বিটটি সন্ধান করতে এখানে পৌঁছেছি: "লুইট সাধারণত টার্মিনাল এমুলেটর দ্বারা স্বচ্ছভাবে আহ্বান করা হয়।" সুতরাং, যারা এখানে পৌঁছেছেন তাদের জন্য যেহেতু আপনি আপনার টার্মিনালে ভুল এনকোডিংয়ের মধ্য দিয়ে আসছেন, এটি ঠিক করার সাধারণ উপায় হ'ল টার্মিনাল এমুলেটরের মাধ্যমে এনকোডিং পরিবর্তন করা।
জোসেফ_মরিস

@ জোসেফ_মরিস আমাকে উত্তর দেওয়ার প্রশ্নের তৃতীয় অনুচ্ছেদে আপনাকে নির্দেশ করতে দিন। ওপি টার্মিনাল এমুলেটরের মেনু কমান্ডগুলি ব্যবহার করে কীভাবে এনকোডিং পরিবর্তন করতে জানত (যে আপনি 'সাধারণ' উপায়টি কল করেন) তবে তিনি একটি সি এল এল বিকল্পের সন্ধান করছিলেন।
törzsmókus

1
ঠিক তাই, আমি "এটি সঠিক" দিয়ে শুরু করেছিলাম। যাইহোক, এই পৃষ্ঠাটি এখন "টার্মিনাল এনকোডিং" এর জন্য অন্যতম শীর্ষ হিট, এবং আমি ভেবেছিলাম যে "এখানে আমার টার্মিনাল এনকোডিংটি কেন গণ্ডগোল হয়?" - এবং এটি সাধারণত এমুলেটরটিতে এনকোডিং হয়, সি এল এল নয়।
জোসেফ_মরিস

আহ, এখন আমি আপনার বক্তব্য দেখতে পাচ্ছি।
törzsmókus

4

প্রথমে আপনার প্রিয় সম্পাদকের বর্তমান লোকালগুলি সম্পাদনা করুন

sudo gedit /var/lib/locales/supported.d/local মত কিছু

en_GB.UTF-8 UTF-8
en_US.UTF-8 UTF-8
en_GB.ISO-8859-1 ISO-8859-1
en_US.ISO-8859-1 ISO-8859-1

তারপরে দৌড়াও sudo dpkg-reconfigure locales

তারপরে টার্মিনাল সেট করুন LANG=en_GB.ISO-8859-1

আশা করি কাজ করে


4

জিনোম টার্মিনাল সেটিংস সঞ্চয় করতে gconf ব্যবহার করে। এগুলি gconftoolতাই দ্বারা চালিত করা যায় , আপনি ব্যবহার করতে পারেন:

gconftool --set --type=string /apps/gnome-terminal/profiles/Default/encoding ISO-8859-1

আমি এটি 12.04 এ পরীক্ষা করেছি। কিছু কারণে মেনুটি ( "Terminal"->"Set Character Encoding...") রিয়েল টাইমে আপডেট হবে বলে মনে হয় না, তবে প্রকৃত চরিত্রের এনকোডিংটি সঠিকভাবে আপডেট হয়।


2
তবে এটি সমস্ত টার্মিনালের জন্য ডিফল্ট এনকোডিংকে পরিবর্তন করে , কেবল এসএসএস সংযোগ স্ক্রিপ্টটি চালাচ্ছে না।
törzsmókus

3

আমি এটি পরীক্ষা করতে জানি না, তবে কুবুন্টুতে কনসোল দিয়ে আমি নিম্নলিখিতটি করতে পারি:

1) dbus এ নিবন্ধিত আবেদন সন্ধান করুন

$ qdbus

আমি konsoleএকটি সহজ qdbus | grep konsআমাকে দেয় ব্যবহারorg.kde.konsole

2) কনসোলে বর্তমান সেশনগুলি সন্ধান করুন

$ qdbus org.kde.konsole | grep Sessions
/Sessions
/Sessions/1

$ set | grep -i sessions
KONSOLE_DBUS_SESSION=/Sessions/1

3) দরকারী পদ্ধতি সন্ধান করুন

$ qdbus org.kde.konsole /Sessions/1 | grep -i codec
method QByteArray org.kde.konsole.Session.codec()
method bool org.kde.konsole.Session.setCodec(QByteArray codec)

4) বর্তমান এনকোডিং পরীক্ষা করুন

$ qdbus org.kde.konsole /Sessions/1 org.kde.konsole.Session.codec
UTF-8

5) এনকোডিং সেট করুন

$ qdbus org.kde.konsole /Sessions/1 org.kde.konsole.Session.setCodec ISO-8859-1
true

6) বর্তমান এনকোডিং পরীক্ষা করুন

$ qdbus org.kde.konsole /Sessions/1 org.kde.konsole.Session.codec
ISO-8859-1

উবুন্টুর একটি অনুরূপ টার্মিনাল প্রোগ্রাম থাকবে, তবে আপনাকে সঠিক সার্ভিসনেম, পথ, পদ্ধতি এবং যুক্তি দিয়ে নিজেকে বিস্মিত করতে হবে।


2

প্রোডাকশন সার্ভারের সাথে সংযোগ করার সময় আমি প্রোফাইলটি পরিবর্তন করতে (ব্যাকগ্রাউন্ড রঙের জন্য) ব্যবহার করার জন্য এখানে আরেকটি সমাধান দেওয়া হয়েছিল। এটি জড়িত xdotool

xdotoolপছন্দসই মেনু আইটেমটি নির্বাচন করার জন্য প্রয়োজনীয় কীস্ট্রোকগুলি অনুকরণ করবে। প্রথমে আপনার কীবোর্ড দিয়ে চেষ্টা করুন, তারপরে ক্রমটি লিখুন:

$ xdotool key alt+t Down c Down Return

এটি প্রথম অক্ষর এনকোডিং সক্রিয় করবে। অন্যটি নির্বাচন করার Downআগে আরও কী যুক্ত Returnকরুন।

দ্রষ্টব্য: এর জন্য ssh, আপনি ~/.ssh/configআপনার সার্ভারে উপাধি কনফিগার করতে একটি ফাইলও ব্যবহার করতে পারেন ।


দুঃখিত - আমি আপনাকে অনুগ্রহপ্রদান দেওয়ার কথা বলতে চাইছিলাম, তবে ভুল পোস্টটি ক্লিক করেছি = (
টমাস আসচান

জিনোম-টার্মিনালের মেনুটি পরিবর্তন না হওয়ার গ্যারান্টিযুক্ত না হওয়ায়, আমি এটিকে একটি অত্যন্ত ভঙ্গুর হ্যাক হিসাবে বিবেচনা করি, যখন কোনও আসল সমাধান না থাকলে এটি সঠিক জিনিস হতে পারে । কিন্তু একটি আছে
törzsmókus

1

চালু xterm, নিয়ন্ত্রণ সিকোয়েন্স ব্যবহার করে এনকোডিং পরিবর্তন করুন । উদাহরণস্বরূপ, bashআপনি মধ্যে ইউটিএফ -8 অক্ষর চালিয়ে সেট করুন:

echo -n $'\e%G'

আইএসও 8859-1 কোডিং চালিয়ে অ্যাক্সেসযোগ্য:

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