Wie verbinde ich von einem utf-8-Client über ssh einen latin1-Server?

2177
troelskn

Ich habe eine neue Ubuntu-Installation und möchte eine Verbindung über SSH in einem Gnome-Terminal herstellen. Der Server verwendet latin1 (alle Dateien usw. sind latin1), daher möchte ich das in der Sitzung verwenden. Ich habe den Zeichensatz in der Menüoption so geändert, dass Zeichen korrekt auf meinem Bildschirm ausgegeben werden. Ich kann jedoch keine Nicht-ASCII-Zeichen richtig eingeben. Soll ich ein paar magische Argumente an ssh übergeben oder gibt es eine Einstellung in gnome-terminal oder sollte ich stty verwenden? Ich bin ein bisschen verloren.

Aktualisieren:

OK. Ich habe das Problem jetzt etwas eingegrenzt. Wenn ich in der Befehlszeile Folgendes ausführen:

php -r 'while ($c = fread(STDIN, 1)) { echo $c; }' 

Und drücken Sie eine Nicht-ASCII-Taste, wird sie korrekt wiedergegeben. Wenn ich jedoch denselben Schlüssel in die Shell eingebe, passiert nichts. Das muss also eine Einstellung in der Shell-Umgebung sein (Locale-Einstellung?). Irgendwelche Ideen?

2

2 Antworten auf die Frage

3
Vebjorn Ljosa

Das Problem hat höchstwahrscheinlich mit readline zu tun, die bash verwendet. Geben Sie entweder Folgendes ein /etc/inputrcoder ~/.inputrc:

set meta-flag on set output-meta on set convert-meta off 

meta-flagErmöglicht die Acht-Bit-Eingabe (dh das achte Bit der gelesenen Zeichen wird nicht gelöscht), unabhängig davon, was das Terminal behauptet, dass es dies unterstützen kann. output-metaermöglicht die Anzeige von Zeichen, bei denen das achte Bit direkt gesetzt ist und nicht als meta-vorangestellte Escape-Sequenz. Wenn diese convert-metaOption aktiviert ist, konvertiert readline Zeichen mit dem achten Bit in eine ASCII-Schlüsselsequenz, indem das achte Bit entfernt und mit einem Escape-Zeichen versehen wird (dh Escape als Meta-Präfix). Wir schalten es aus. Sind man readlinefür weitere Informationen über diese und andere Variablen.

Whoohoo .. das war es. Vielen Dank - eine Menge - das verfolgt mich seit Wochen. troelskn vor 15 Jahren 0
2
Vebjorn Ljosa

Sie können die Kodierung unter gnome-terminal im Menü unter Terminal-> Kodierung ändern. Fügen Sie die Western-Kodierung (ISO 8859-1) hinzu und wechseln Sie zu dieser.

Das ändert die Anzeige (Ausgabe), aber nicht die Eingabe. Ich sehe die Zeichen richtig, aber wenn ich eine Taste mit Nicht-ASCII-Zeichen drücke, wirkt das merkwürdig. troelskn vor 15 Jahren 0
Troelskn, sowohl Input als auch Output arbeiten für mich. Meine Version von gnome-terminal ist 2.22.3. Vebjorn Ljosa vor 15 Jahren 0
Danke, aber das Problem scheint irgendwie mit der Remote-Shell zusammenhängt zu sein. Ich habe meine Frage aktualisiert. troelskn vor 15 Jahren 0