PuTTY bozuk karakter gösteren nasıl düzeltilir?


76

PuTTY kullanarak bir Windows 7 PC'den SSH üzerinden bir Ubuntu sunucusuna bağlanırken bazı ekran hataları alıyorum:

görüntü tanımını buraya girin

Yani:

  • Midnight Commander (MC) içindeki seçimi "çift çizer" .
  • Satır öğeleri gibi diğer karakterler yanlış karakterler olarak çizilir (örneğin, "|" yerine "â").

Mac OS X'ten bir terminal ve SHH ile aynı Ubuntu sunucusuna bağlandım ve bu ekranın bozulmasını alamadım (yani her şey düzgün görünüyor ve çalışıyor). PuTTY içindeki font ayarlarıyla oynamayı denedim, onu Courier New'den Consolas'a değiştirdim ama şanssız.

Bu yüzden sorum şu:

PuTTY'yi özel karakterleri doğru gösterecek ve ekran çizimlerini çift çizmeli / üzerine yazmayacak şekilde nasıl yapılandırabilirim?


1
SecureCRT ile: Seçenek -> Oturum Seçenekleri -> Terminal -> Görünüm -> Karakter kodlaması -> seçimini yapın: UTF-8. Umarım benim gibi başkalarına yardım etsin!
Vunb

Yanıtlar:


72

PuTTY ayarlarınızda kesinlikle yanlış karakter setini belirlediniz .

Komutu çalıştırarak uzak sistemde ayarlanan karakteri doğrulayın:

locale

Bu şöyle bir şey döndürmeli:

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=

Bu nedenle, PuTTY ayarlarınızı Çeviri altında kontrol edin UTF-8ve karakter seti olarak ayarladığınızdan emin olun .

PuTTY Yeniden Yapılandırma

Çizgi çizme ayarında da ince ayar yapmanız gerekebilir, ancak büyük olasılıkla muhtemel değildir.


14
Bu her durumda yeterli değildir. Aşağıdaki değişkeni de ortamınıza dışa aktarmanız gerekir: NCURSES_NO_UTF8_ACS=1 [daha fazla bilgi ]
Piotr Jurkiewicz

2
durumunda localedöner POSIXmuhtemelen sshd config usePAM devre dışı bırakılmış
user2693017

4
Yerel ayar gibi bir şey döndürürse , komut satırında POSIXsorun update-locale LANG=en_US.utf8- bkz. Thomas-krenn.com/de/wiki/Locales_unter_Ubuntu_konfigurieren
koppor

@ michael-hampton, sistemim en_US.UTF-8 kullanacak şekilde yapılandırılmış. Görüyorum ki farklı yerler yerel hakkında farklı şeyler söylüyor. Bazı yerler en_US kullanmam gerektiğini belirtirken, diğer yerler de_DE kullanmam gerektiğini söylüyor. Grep ve diğer çekirdek dosyalarının karakter kümesini ayarlamak için yerel ayarları kullanmasından önce gördüm. Bunu değiştirmenin etkileri nelerdir?
alpha_989

@koppor, yerel ayarları en_US olarak değiştirirken, michael ise yerel ayarları de_DE olarak değiştirmekten bahsetti. Hangisi doğru?
alpha_989

34

aptitudeKarakterlerim olarak UTF-8 olmasına rağmen Debian'ın programında bir sorun vardı. Benim için işe yarayan şey 'Bağlantı> Veri>' Terminal tipi dizgiyi '' xterm 'yerine' putty 'olarak ayarlamaktı - görünüşe göre Putty, çizim moduna geçmek için karakter dizisini görmezden geliyor: http: //www.chiark.greenend .org.uk / ~ sgtatham / macun / dilek / UTF-8-artı-vt100.html

görüntü tanımını buraya girin


2
Mükemmel. Kolay ve işe yarıyor. (En azından Debian / Ubuntu'da kaldı.)
Nate,

1
Bu iyi çalışıyor (PuTTY'de) ancak daha sonra başka (daha küçük) bir problem ortaya koyuyor: uzaktan kumandalı pencere başlığı artık değişmiyor.
ADTC

Mükemmel. Ubuntu Artful'daki ncmpc problemini çözdü.
weberjn


8

Bu iki temel faktör, burada ve diğer birçok yerde belirtildiği gibi Linux'ta macun ve yerel ayarlarda bulunan Pencere / Çeviri UTF-8'dir.

Ayrıca, Bağlantı / Veri / Terminal tipi dizginin macun olarak ve / veya Linux'ta ayarlanması macunda yardımcı olabilir export NCURSES_NO_UTF8_ACS=1. Bu ikisine birden fazla yerden da bahsedilir.

Ancak: Courier ve Lucida Console gibi varsayılan fontların tüm Unicode karakterlerine sahip olmadığından, hala belirli karakterler için bloklar alabilirsiniz. Http://dejavu-fonts.org/wiki/Download indirin ve kurun ve kullanmak için macunu ayarlayın.

Bu son numara, nopingtüm grafik karakterleri göstermek için almam (tavsiye edildi!) İçin gerekliydi .


2
export NCURSES_NO_UTF8_ACS=1benim için en iyi çalıştı. Sadece kullanmayı unutmayın gerekir -Eseçeneği sudoı çalıştırdığınızda iftopbu ortam ayarı korumak için. sudo -E iftop
HeatfanJohn

5

Benim durumumda (Ubuntu 14.04) konu eksik olmasından kaynaklanıyordu

UsePAM yes    

/ etc / ssh / sshd_config olarak /etc/pam.d/sshd pam yapılandırmasına giriş, / etc / default / locale komutunu kullanıcı ortamına yüklemekten varsayılan olarak sorumludur.


Bu benim için düzeltti.
Martin,

5

Hepiniz zavallı yaşlı VMS adamları için buraya:

PuTTY → Pencere → Çeviri → Uzak karakter seti → DEC-MCS

benim için çalıştı.


4

Docker makinesini kullanırken (yerel ve sistem yöneticisi tarafından ayarlanan makinelerde) bunun için birçok çözüm arıyordum. Macumda her şey yolundaydı (vardı UTF-8), başka SSH istemcisini de kullanıyordum ve aynı problemi yaşıyordum.

Koşu:

mc -ac

sorunu çözüyordum (ama tamamen değil) ve tam bir çözüm arıyordum.

Pek çok öneri okuduktan sonra nihayet sorunumu çözen birisini buldum.

Koşarken terminalde:

locale

hangi yerel ayarda olduğunu doğrula. Varsayılan olarak Cyerel ayarlarım vardı .

Yüklenen tüm yerel ayarları doğrulamak için locale -a

Mesela:

C
C.UTF-8
POSIX

varsayılan olarak.

Çözüm şu LANGşekilde C.UTF-8yerel ayarlarla değişken ihraç ediyor :

export LANG="C.UTF-8"

Açıkça .bashrc, profilinizde otomatik olarak ayarlanması için ekleyebilirsiniz .


LANG değişkeninin değişmesinin yan etkileri nelerdir? Zaten LUT olarak C.UTF-8'iniz varsa, neden tekrar ihraç ettiniz?
alpha_989

2

Her nasılsa, powerbroker / pbis / aynı şekilde kimlik doğrulaması olan ana bilgisayarları etkileyebilecek olan pam ile ilgili başka bir neden.

"lsass" oluşumu için grep /etc/pam.d:

grep -r lsass /etc/pam.d

çıktıda şöyle bir şey görürseniz:

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

o zaman muhtemelen sorunun asıl nedeni budur. Hızlı düzeltme, pam_lsass modülünün yanındaki "isteğe bağlı" yerine "yeterli" ifadesini değiştirerek şöyle görünür:

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

/etc/pam.d/common-session (veya benzer girişi olan başka bir dosya - bunlardan çok az olabilir) muhtemelen pet_env yüklenmeden önce /etc/pam.d/sshd tarafından eklenir, böylece pam modüllerinin işlenmesi biter pam_env'e gelmeden önce / etc / default / locale kullanıcı ortamına yüklenmez ve karakter bozukluğa sahipsiniz.


2

15 yıl sonra bir kez daha sinirlenip tekrar googledim, buldum, seçtim

ayarları değiştir → pencere → çeviri → uzak karakter kümesi → "font kodlamasını kullan"

ve bu onu düzeltti.


2

Ben, ayarlamak zorunda PencereÇeviri sayfasına, karakter olarak ayarlandı:

ISO-8859-1: 1998 (Latin-1, Batı Avrupa)

Sonra, ancak yalnızca o zaman, satır içi karakterler doğru görünüyordu.


1

Bu şekilde mc çalıştırmak (yerel ayarı en olarak ayarlayın) benim için çalışıyor:

$ LC_ALL=en mc

1

benim için işe yarayan şey "Bağlantı, Veri, Terminal tipi string = ansi" artı "Pencere, Çeviri, Uzak karakter seti = Yazı tipi kodlamasını kullan" ve sonra set TERM=ansiunix tarafında.

PS. MS-Word'ü kullanmaya zorlandıysanız akıllı tırnakları KAPALI konuma getirmeyi unutmayın.


1
Ayrıca modern bir LInux sistemine değil, daha eski bir Linux olmayan sisteme bağlandığınızı da belirtmelisiniz.
Michael Hampton

1

Benim sorunum macun UTF-8 olarak yapılandırılmış, ancak uzak sistem bir ISO-8859-1 idi.

Batı Avrupa, ben de pastayı değiştirdim ve her şey yolunda gitti.

Putty ekran görüntüsü

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.