विकृत वर्णों को दिखाने वाले PuTTY को कैसे ठीक करें?


76

एक 7 विंडोज पीसी से SSH के माध्यम से कनेक्ट करके , PuTTY का उपयोग कर एक उबंटू सर्वर में , मुझे कुछ स्क्रीन त्रुटियां मिलती हैं:

यहाँ छवि विवरण दर्ज करें

अर्थात्:

  • "डबल-ड्रॉ" मिडनाइट कमांडर (एमसी) के अंदर चयन ।
  • अन्य वर्ण जैसे कि लाइन एलीमेंट्स को गलत कैरेक्टर के रूप में तैयार किया जाता है (जैसे "|" "के बजाय")।

मैं मैक ओएस एक्स से एक टर्मिनल और एसएचएच के साथ एक ही उबंटू सर्वर से जुड़ा हुआ हूं और इन स्क्रीन गार्बलिंग (यानी सब कुछ दिखता है और सही ढंग से काम करता है) नहीं मिलता है। मैंने पहले ही PuTTY के अंदर फ़ॉन्ट सेटिंग्स के साथ खेलने की कोशिश की है, इसे कूरियर न्यू से कॉन्सोल में बदल रहा है लेकिन भाग्य के बिना।

मेरा सवाल है:

विशेष वर्णों को सही ढंग से प्रदर्शित करने के लिए PuTTY को कैसे कॉन्फ़िगर करें और स्क्रीन लाइनों को डबल-ड्रा / ओवरराइट न करें?


1
SecureCRT के साथ: विकल्प का चयन करें -> सत्र विकल्प -> टर्मिनल -> उपस्थिति -> चरित्र एन्कोडिंग -> चयन करें: UTF-8। आशा है कि मेरी तरह दूसरों की मदद करें!
वुनब

जवाबों:


72

आपने लगभग निश्चित रूप से अपनी PuTTY सेटिंग में गलत वर्ण सेट किया है ।

दूरस्थ सिस्टम पर सेट चरित्र को सत्यापित करके कमांड चलाएं:

locale

इसे कुछ इस तरह लौटाना चाहिए:

LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=

इसलिए अनुवाद के तहत अपनी PuTTY सेटिंग्स की जाँच करें और सुनिश्चित करें कि आपने UTF-8चरित्र सेट के रूप में सेट किया है।

पुटी पुनर्निधारण

आपको रेखा ड्राइंग सेटिंग को भी ट्विक करने की आवश्यकता हो सकती है, लेकिन इसकी संभावना नहीं है।


14
यह सभी मामलों में पर्याप्त नहीं है। आपको अपने पर्यावरण के लिए निम्नलिखित चर को भी निर्यात करना चाहिए: NCURSES_NO_UTF8_ACS=1 [अधिक जानकारी ]
२४:१४ पर पिय्र्ट जर्कविक्ज़

2
यदि आप localeरिटर्न का उपयोग करते हैं, POSIXतो संभवत: आप sshd config
user2693017

4
यदि लोकेल कुछ वापस आती है POSIX, update-locale LANG=en_US.utf8तो कमांड लाइन पर जारी करें - thomas-krenn.com/de/wiki/Locales_unter_Ubuntu_konfigurieren
koppor

@ माइकल-हैम्पटन, मेरे सिस्टम को en_US.UTF-8 का उपयोग करने के लिए कॉन्फ़िगर किया गया है। मैं देखता हूं कि अलग-अलग जगह लोकेल के बारे में अलग-अलग बातें कहती हैं। कुछ स्थानों का उल्लेख मैं en_US का उपयोग करना चाहिए, जबकि अन्य स्थानों का उल्लेख मैं de_DE का उपयोग करना चाहिए। मुझे लगता है कि grep और अन्य मुख्य बर्तनों से पहले पात्र सेट करने के लिए लोकेल का उपयोग होता है, मुझे विश्वास है। इसे बदलने के निहितार्थ क्या हैं?
अल्फा_989

@koppor, आपने लोकेल को en_US में बदलने का उल्लेख किया, जबकि माइकल ने लोकेशन को de_DE में बदलने का उल्लेख किया। कौनसा सही है?
अल्फा_989

34

मेरे पास डेबियन के aptitudeकार्यक्रम के साथ एक मुद्दा था, भले ही मेरे पास मेरे पात्रों के रूप में UTF-8 था। मेरे लिए जो काम किया गया था वह 'एक्सटरम' के बजाय 'कनेक्शन> डेटा>' टर्मिनल-टाइप स्ट्रिंग 'को' पोटीन 'में सेट करने के लिए था - जाहिर तौर पर पुट्टी ड्राइंग मोड में स्विच करने के लिए वर्ण अनुक्रम को अनदेखा करता है: http: //www.chiark.greenend .org.uk / ~ sgtatham / पोटीन / विशलिस्ट / UTF8 से अधिक vt100.html

यहाँ छवि विवरण दर्ज करें


2
अति उत्कृष्ट। आसान है और यह काम करता है। (कम से कम यह डेबियन / उबंटू पर करता है।)
नैट

1
यह अच्छी तरह से (PuTTY पर) काम करता है, लेकिन फिर यह एक और (अधिक छोटी) समस्या का परिचय देता है: रिमोट-नियंत्रित विंडो शीर्षक जो अब काम नहीं कर रहा है।
ADTC

अति उत्कृष्ट। Ubuntu Artful पर ncmpc के लिए समस्या का समाधान किया।
वीबरजेन


8

दो मूल कारक लिनक्स में विंडो / ट्रांसलेशन UTF-8 पोटीन और लोकेल सेटिंग्स में हैं, जैसा कि यहां और कई अन्य स्थानों पर दिया गया है।

इसके अलावा, यह पोटीन में कनेक्शन / डेटा / टर्मिनल-टाइप स्ट्रिंग को पोटीन और / या लिनक्स में करने के लिए सेट करने में मदद कर सकता है export NCURSES_NO_UTF8_ACS=1। इन दोनों का उल्लेख कई स्थानों पर भी है।

लेकिन: आपको अभी भी कुछ वर्णों के लिए ब्लॉक मिल सकते हैं क्योंकि कूरियर और लुसीडा कंसोल जैसे डिफ़ॉल्ट फोंट में सभी यूनिकोड वर्ण नहीं हैं। Http://dejavu-fonts.org/wiki/Download को डाउनलोड और इंस्टॉल करें , और इसे इस्तेमाल करने के लिए पोटीन सेट करें।

nopingसभी ग्राफिक पात्रों को दिखाने के लिए (अनुशंसित!) प्राप्त करने के लिए यह अंतिम चाल मेरे लिए आवश्यक थी ।


2
export NCURSES_NO_UTF8_ACS=1मेरे लिए सबसे अच्छा काम किया। मुझे उस वातावरण की सेटिंग को बनाए रखने के लिए चलने -Eपर विकल्प का उपयोग करने के लिए याद रखने की आवश्यकता है। sudoiftopsudo -E iftop
हीटफैनजॉन

5

मेरे मामले में (Ubuntu 14.04) समस्या गायब होने के कारण थी

UsePAM yes    

/ etc / ssh / sshd_config में /etc/pam.d/sshd pam कॉन्फ़िगरेशन में प्रविष्टि उपयोगकर्ता के वातावरण में लोडिंग / आदि / डिफ़ॉल्ट / लोकेल के लिए डिफ़ॉल्ट रूप से जिम्मेदार है।


इसने मेरे लिए इसे ठीक कर दिया।
मार्टिन

5

आप सभी गरीब पुराने VMS लोगों के लिए जो यहाँ समाप्त होते हैं:

PuTTY → विंडो → अनुवाद → दूरस्थ वर्ण सेट → DEC-MCS

मेरे लिए काम किया।


4

मैं इसके लिए कई समाधानों की तलाश कर रहा था जब डॉकटर मशीन (सिस्टम प्रशासक द्वारा स्थापित दोनों स्थानीय और मशीनों पर) का उपयोग कर रहा था। मेरी पुट्टी में सब कुछ ठीक था (मेरे पास UTF-8), मैं अन्य एसएसएच क्लाइंट का भी उपयोग कर रहा था और ठीक उसी तरह की समस्या थी।

चल रहा है:

mc -ac

समस्या को हल कर रहा था (लेकिन पूरी तरह से नहीं) और मैं पूरा समाधान ढूंढ रहा था।

कई सुझावों को पढ़ने के बाद, मैंने आखिरकार अपने मुद्दे को हल कर लिया।

जब आप चलते हैं तो टर्मिनल में:

locale

सत्यापित करें कि आपने कौन सा लोकल सेट किया है। मैं डिफ़ॉल्ट Cलोकेल से था।

सभी स्‍थापित स्‍थल को सत्यापित करने के लिए locale -a

मेरे पास उदाहरण के लिए है:

C
C.UTF-8
POSIX

डिफ़ॉल्ट रूप से।

समाधान स्थानीय जैसे LANGचर के साथ चर निर्यात C.UTF-8कर रहा है:

export LANG="C.UTF-8"

आप स्पष्ट रूप से इसे .bashrcअपने प्रोफ़ाइल में स्वचालित रूप से सेट करने के लिए जोड़ सकते हैं ।


लैंग चर को बदलने के क्या दुष्प्रभाव हैं? यदि आपके पास पहले ही C.UTF-8 LANG के रूप में था, तो इसे फिर से क्यों निर्यात करें?
अल्फा_989

2

किसी अन्य कारण से पैम से संबंधित अन्य कारण जो कि पावरब्रोकर / पीबीएस / इसी तरह प्रमाणीकरण के साथ मेजबानों को प्रभावित कर सकते हैं।

"lsass" के लिए grep /etc/pam.d

grep -r lsass /etc/pam.d

यदि आप आउटपुट में कुछ इस तरह देखते हैं:

/etc/pam.d/common-session:session       sufficient        pam_lsass.so

तो यह शायद समस्या की जड़ है। त्वरित समाधान "पर्याप्त" को "वैकल्पिक" के साथ pam_lsass मॉड्यूल के बगल में बदलना है ताकि यह ऐसा दिखे:

/etc/pam.d/common-session:session       optional        pam_lsass.so

/etc/pam.d/common-session (या समान प्रविष्टि वाली अन्य फ़ाइल - उनमें से कुछ हो सकते हैं) शायद pet_env लोड होने से पहले /etc/pam.d/sshd द्वारा शामिल किया जाता है, ताकि p p मॉड्यूल का प्रसंस्करण समाप्त हो जाए इससे पहले कि यह pam_env पर आता है, / etc / default / locale उपयोगकर्ता वातावरण में लोड नहीं होता है और आपके पास वर्ण हैं।


2

15 साल बाद मैं एक बार फिर से नाराज हो गया और फिर से घूमने लगा, यह पाया, चुना

परिवर्तन सेटिंग्स → विंडो → अनुवाद → रिमोट चार सेट → "फ़ॉन्ट एन्कोडिंग का उपयोग करें"

और यह तय है।


2

मुझे विंडोट्रांसलेशन पेज पर सेट करना होगा, जो कैरेक्टर में सेट है:

ISO-8859-1: 1998 (लैटिन -1, पश्चिम यूरोप)

तब, और उसके बाद ही, लाइनरेड अक्षर सही ढंग से दिखाई दिए।


1

इस तरह से mc चलाना (मेरे लिए स्थानीय सेट करें) मेरे लिए काम करता है:

$ LC_ALL=en mc

1

मेरे लिए जो काम किया गया वह था "कनेक्शन, डेटा, टर्मिनल-टाइप स्ट्रिंग = एएनआई" प्लस "विंडो, ट्रांसलेशन, रिमोट कैरेक्टर सेट = फॉन्ट एन्कोडिंग का उपयोग करें" फिर set TERM=ansiयूनिक्स की तरफ।

पुनश्च। यदि आप MS-Word का उपयोग करने के लिए मजबूर हैं, तो स्मार्ट उद्धरण बंद करना याद रखें।


1
आपको यह भी उल्लेख करना चाहिए कि आप एक आधुनिक LInux सिस्टम से नहीं जुड़ रहे हैं, बल्कि एक पुराना गैर-लिनक्स सिस्टम है।
माइकल हैम्पटन

1

मेरी समस्या यह थी कि पोटीन को UTF-8 के रूप में कॉन्फ़िगर किया गया है लेकिन दूरस्थ प्रणाली एक ISO-8859-1 है

पश्चिम यूरोप, तो मैंने बदल दिया कि पोटीन पर और कुछ भी ठीक काम किया।

पोटीन स्क्रीनशॉट

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.