Frage Wie man PuTTY repariert, das unleserliche Zeichen zeigt?


Verbindung von einem Windows 7 PC über SSH zu einem Ubuntu Server mittels Kitt, Bekomme ich einige Bildschirmfehler:

enter image description here

I.e. es:

  • "Doppelzeichnet" die Auswahl nach innen Mitternachtskommandant (MC).
  • Andere Zeichen wie Linienelemente werden als falsche Zeichen gezeichnet (z. B. "â" anstelle von "|").

Ich bin mit dem gleichen Ubuntu-Server mit einem Terminal und SHH von einem Mac OS X verbunden und bekomme diesen Bildschirm nicht verstümmelt (d. H. Alles sieht und funktioniert korrekt). Ich habe schon versucht, mit den Schrifteinstellungen in PuTTY zu spielen, und zwar von Courier New zu Consolas, aber ohne Glück.

Meine Frage ist daher:

Wie konfiguriert man PuTTY, um Sonderzeichen korrekt anzuzeigen und Bildschirmzeilen nicht doppelt zu zeichnen / zu überschreiben?


66
2018-02-06 06:14


Ursprung




Antworten:


Sie haben mit ziemlicher Sicherheit den falschen Zeichensatz eingestellt Ihre PuTTY-Einstellungen.

Überprüfen Sie den Zeichensatz auf dem Remote-System, indem Sie den folgenden Befehl ausführen:

locale

Dies sollte etwa so aussehen:

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=

Überprüfen Sie Ihre PuTTY Einstellungen unter Übersetzung und stellen Sie sicher, dass Sie haben UTF-8 als Zeichensatz festlegen.

PuTTY Reconfiguration

Möglicherweise müssen Sie auch die Einstellung der Linienzeichnung optimieren, aber wahrscheinlich ist dies nicht möglich.


68
2018-02-06 06:32



Das hat den Trick gemacht, vielen Dank, Michael! - Uwe Keim
Dies ist nicht in allen Fällen ausreichend. Sie sollten auch die folgende Variable in Ihre Umgebung exportieren: NCURSES_NO_UTF8_ACS=1  [Mehr Info] - Piotr Jurkiewicz
im Fall locale kehrt zurück POSIX Wahrscheinlich haben Sie usePAM in der sshd-Konfiguration deaktiviert - user2693017
Wenn das Gebietsschema etwas zurückgibt POSIX, Problem update-locale LANG=en_US.utf8 in der Befehlszeile - siehe thomas-krenn.com/de/wiki/Locales_unter_Ubuntu_konfigurieren - koppor
@ Michael-Hampton, mein System ist so konfiguriert, dass es en_US.UTF-8 benutzt. Ich sehe, dass verschiedene Orte unterschiedliche Dinge über das Gebietsschema sagen. Einige Orte erwähnen, dass ich en_US verwenden sollte, während andere Orte erwähnen, dass ich de_DE verwenden sollte. Ich habe gesehen, bevor die Grep und andere Kern-Utils das Gebietsschema verwenden, um den Zeichensatz zu setzen, glaube ich. Was sind die Konsequenzen, dies zu ändern? - alpha_989


Ich hatte ein Problem mit Debian aptitude Programm, obwohl ich UTF-8 hatte, wie meine Zeichen gesetzt. Was für mich funktionierte, war, 'Connection> Data>' Terminal-type string 'auf' putty 'anstatt auf' xterm 'zu setzen - anscheinend ignoriert Putty die Zeichenfolge, um in den Zeichnungsmodus zu wechseln: http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/utf8-plus-vt100.html

enter image description here


31
2018-01-19 01:57



Ausgezeichnet. Einfach und es funktioniert. (Zumindest auf Debian / Ubuntu.) - Nate
Dies funktioniert gut (auf PuTTY), aber dann führt es ein anderes (kleineres) Problem ein: ferngesteuerte Änderung des Fenstertitels funktioniert nicht mehr. - ADTC
Ausgezeichnet. Das Problem für ncmpc auf Ubuntu Artful wurde behoben. - weberjn
Klappt wunderbar. Vielen Dank. - Fabian Barney


Wenn UTF-8 nicht richtig konfiguriert ist, können Sie es auch als ausführen mc -ac.

Credits: http://blog.acsystem.sk/linux/midnight-commander-utf8-line-drawing-characters-problem


9
2017-10-24 00:58





Die beiden grundlegenden Faktoren sind Window / Translation UTF-8 in Putty und Locale-Einstellungen in Linux, wie hier und an vielen anderen Stellen angewiesen.

Darüber hinaus kann es beim Kitten helfen, zu setzen Verbindung / Daten / Terminal-Typ Zeichenfolge an Kittund / oder in Linux zu export NCURSES_NO_UTF8_ACS=1. Diese zwei sind auch mehrere Orte erwähnt.

Aber: Sie können immer noch Blöcke für bestimmte Zeichen erhalten, weil die Standardschriftarten wie Courier und Lucida Console nicht alle Unicode-Zeichen haben. Herunterladen und installieren http://dejavu-fonts.org/wiki/Downloadund setze Kitt, um es zu benutzen.

Dieser letzte Trick war notwendig für mich zu bekommen noping (empfohlen!) um alle grafischen Zeichen anzuzeigen.


5
2017-07-14 09:41



export NCURSES_NO_UTF8_ACS=1 hat am besten für mich funktioniert. Ich muss nur daran denken, das zu verwenden -E Option auf sudo wenn ich renne iftop um diese Umgebungseinstellung beizubehalten. sudo -E iftop - HeatfanJohn


In meinem Fall (Ubuntu 14.04) wurde das Problem durch das Fehlen verursacht

UsePAM yes    

Eintrag in / etc / ssh / sshd_config als /etc/pam.d/sshd pam-Konfiguration ist standardmäßig verantwortlich für das Laden von / etc / default / locale in die Benutzerumgebung.


4
2017-10-20 16:22





Ich suchte nach vielen Lösungen dafür, wenn ich Docker-Maschine benutze (sowohl Gebietsschema als auch auf Maschinen, die vom Systemadministrator eingerichtet wurden). In meiner Putty war alles in Ordnung (ich hatte UTF-8), Ich benutzte auch andere SSH-Clients und hatte genau das gleiche Problem.

Laufen:

mc -ac

löste das Problem (aber nicht vollständig) und ich suchte nach einer vollständigen Lösung.

Nachdem ich viele Vorschläge gelesen hatte, fand ich endlich diejenige, die mein Problem gelöst hat.

Im Terminal beim Ausführen:

locale

Überprüfen Sie, welches Gebietsschema Sie festgelegt haben. Ich hatte standardmäßig C Gebietsschema.

Um alle installierten Locale-Installationen zu überprüfen locale -a

Ich habe zum Beispiel:

C
C.UTF-8
POSIX

standardmäßig.

Die Lösung exportiert LANG variabel mit C.UTF-8 Gebietsschema wie folgt:

export LANG="C.UTF-8"

Sie können es natürlich hinzufügen .bashrc um es automatisch in Ihrem Profil zu setzen.


4
2018-05-06 16:48



Welche Nebenwirkungen hat die Änderung der LANG-Variable? Wenn Sie bereits C.UTF-8 als LANG hatten, warum sollten Sie es dann erneut exportieren? - alpha_989


Für alle armen alten VMS Jungs, die hier enden:

PuTTY → Fenster → Übersetzung → Remote-Zeichensatz → DEC-MCS

hat für mich gearbeitet.


3
2017-12-05 19:55





Ein anderer Grund, der irgendwie mit pam zusammenhängt, kann Gastgeber mit powerbroker / pbis / ebenso Authentifizierung betreffen.

grep /etc/pam.d für das "lsass" -Vorkommen:

grep -r lsass /etc/pam.d

Wenn Sie in der Ausgabe etwas sehen wie:

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

dann ist es wahrscheinlich die Ursache des Problems. Die schnelle Lösung besteht darin, "ausreichend" durch "optional" neben dem Modul pam_lsass zu ersetzen, damit es wie folgt aussieht:

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

/etc/pam.d/common-session (oder eine andere Datei mit ähnlichem Eintrag - von denen es möglicherweise nur wenige gibt) ist wahrscheinlich in /etc/pam.d/sshd enthalten, bevor pam_env geladen wird, wenn die Verarbeitung von pam-Modulen beendet ist Bevor es zu pam_env kommt, ist die Datei / etc / default / locale nicht in der Benutzerumgebung geladen und Sie haben keine Zeichen mehr.


2
2018-05-20 15:04





Das Ausführen von mc auf diese Weise (set locale to en) funktioniert für mich:

$ LC_ALL=en mc

1
2018-05-05 09:27