বিদেশী অক্ষরগুলি এসএসএইচে প্রদর্শিত হবে না


17

আমি ব্যবহার করতে sshএবং একটি রিমোট সার্ভার (যাতে আমার প্রশাসক অ্যাক্সেস নেই) নিয়ে কিছু সমস্যা হচ্ছে - বিশেষত, সেখানে কোরিয়ান এবং সিরিলিক পাঠ্য সহ কয়েকটি ফোল্ডার রয়েছে।

আমি যখন এর সাথে প্যারেন্ট ফোল্ডার সামগ্রীগুলি প্রদর্শন করি ls, তখন অক্ষরগুলি "?" হিসাবে পালিয়ে যায়। সম্ভবত লক্ষ্য করা যায় যে কোরিয়ান চরিত্রগুলি সেখানে থাকা চরিত্রের সংখ্যার চেয়ে অনেক বেশি পালাতে পারে?

আমি জানি যে টার্মিনাল প্রোগ্রামটি আমি ব্যবহার করছি অক্ষরগুলি প্রদর্শন করতে পারে, যেমন sftpতাদের নিখুঁতভাবে প্রদর্শন করে। আমি চেষ্টা করেছি এমন সমস্ত টার্মিনালগুলিতে সমস্যা দেখা দেয়।

মেশিনের সংক্ষিপ্তসার

স্থানীয় মেশিন:

  • লিনাক্স 2.6.32-5-686, i686
  • ডেবিয়ান জিএনইউ / লিনাক্স .0.০.২ (নিন)
  • অ্যাডমিন অ্যাক্সেস আছে

রিমোট সার্ভার:

  • লিনাক্স 2.6.32-bpo.5-amd64, x86_64
  • ডেবিয়ান জিএনইউ / লিনাক্স 5.0.8 (লেনি)
  • প্রশাসকের অ্যাক্সেস নেই, না শারীরিকও

আমি সম্ভবত কিছু অন্যান্য গুরুত্বপূর্ণ পরিসংখ্যান বা কিছুটা তথ্য মিস করেছি, সেক্ষেত্রে আমি ক্ষমা চাইছি। আমি কম্পিউটারের সম্পূর্ণ নন-উইন্ডোজ দিক থেকে মোটামুটি নতুন, তাই আমি এখানে খুব কমই জানি।


2
স্থানীয়ভাবে এবং দূরবর্তীভাবে, localeএবং locale -aকমান্ডগুলি থেকে আউটপুট পোস্ট করুন , দয়া করে
এনজোটিব

ধন্যবাদ @ এঞ্জোটিব - আপনার মন্তব্য আমাকে এই ধারণাটিতে ডেকে আনে যে প্রস্তাবিত লোকেলগুলি স্থানীয়ভাবে এবং দূরবর্তীভাবে হতে পারে না।
ChemicalRascal

উত্তর:


20

আপনার স্থানীয় তথ্য সার্ভার মেশিনে সঠিকভাবে সেট আপ করা হয়নি। বিশেষত, LC_CTYPEভেরিয়েবল, যা টার্মিনালের অক্ষরের এনকোডিংকে নির্দেশ করে, সঠিকভাবে সেট করা হয়নি (বা, আমার সন্দেহ হয় না))

আপনার স্থানীয় টার্মিনালে, localeআপনার স্থানীয় সেটিংস দেখতে চালনা করুন । আপনি সম্ভবত (অন্যান্য লাইনের মধ্যে) এরকম কিছু দেখতে পাবেন LC_CTYPE=en_US.UTF-8; এখানে গুরুত্বপূর্ণ বিষয়গুলি ইউটিএফ -8 এনকোডিং .UTF-8নির্দেশ করে part এটি ইউনিক্স বিশ্বের (এবং এর বাইরে) বহুভাষিক পাঠ্যের জন্য ডি ফ্যাক্টো স্ট্যান্ডার্ড এনকোডিং।

আপনার এই তথ্যটি সার্ভারে পৌঁছে দিতে হবে। সর্বোত্তম উপায়, যদি এটি কাজ করে তবে হ'ল ssh সংযোগের মাধ্যমে লোকাল তথ্য প্রেরণ করা। এর জন্য, নিম্নলিখিত লাইনগুলি শেষে যুক্ত করুন ~/.ssh/config:

Host *
SendEnv LC_* LANG

এটির প্রয়োজন একটি উপযুক্ত AcceptEnvনির্দেশিকাটি সার্ভার কনফিগারেশনে উপস্থিত হওয়া ( /etc/ssh/sshd_config) (এটি ডিবিয়ানে ডিফল্টরূপে)।

যদি এটি কাজ না করে এবং আপনি সর্বদা একটি ইউটিএফ -8 টার্মিনাল থেকে সার্ভারে লগ ইন করেন তবে সার্ভারে export LC_CTYPE=en_US.UTF-8আপনার লাইনটি যোগ করুন ~/.bashrc(বা ~/.zshrcআপনার শেল যে কোনও ফাইল ব্যবহার করে)। স্থানীয় নাম (উদাঃ en_US.UTF-8) অবশ্যই প্রদত্তদের মধ্যে একটি হতে locale -aহবে এবং অবশ্যই .UTF-8( .utf8বা কিছু তুচ্ছ প্রকরণ) থাকতে হবে।


1
আহ! সমস্যাটি হ'ল: আমি স্থানীয়ভাবে en_AU.utf8 "ব্যবহার করি" যা সার্ভারে ইতিমধ্যে ফরোয়ার্ড করা হয়েছে বলে মনে হয়েছে (বা, কমপক্ষে, localeফলাফলগুলি মিলেছে)। তবে, locale -aদূরবর্তীভাবে কেবল en_GB.utf8 এবং en_US.utf8 দিয়েছিল। ধন্যবাদ!
ChemicalRascal

1
বর্তমান লোকেলের এনকোডিংটি পেতে, আপনি এটিও ব্যবহার করতে পারেন:locale charmap

আমার /etc/ssh/ssh_configপ্রয়োজনীয়ও পাঠানো হচ্ছে LANG( SendEnv LANG LC_*)
শামেল লি

এবং সার্ভারের দিকে export LC_CTYPE=en_US.UTF-8আমার যুক্ত করা দরকার ~/.profile। এটি যুক্ত করে ~/.bashrcমনে হয়েছিল কোনও প্রভাব নেই।
ডাটকা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.