ssh und Zeichenkodierung


16

Wenn ich sshin mein VPS einsteige, muss ich irssiauf dem Bildschirm laufen. Wenn jemand ein Unicode-Zeichen (wie © oder €) sendet, irssiwird Müll angezeigt, wenn ich es über den Bildschirm in einer sshSitzung verwende. Wenn ich irssiüber das Proxy-Modul von irssi eine Verbindung zu diesem Modul herstelle, wird irssi, das auf meinem lokalen Computer ausgeführt wird, korrekt angezeigt.

Ebenso stürzt es ab, wenn ich ghci auf meinem VPS (außerhalb eines Bildschirms) starte und eines dieser Zeichen eingebe.

Es gibt also offensichtlich eine Art Zeichencodierungsproblem mit meiner Verbindung zu meinem VPS, entweder in ssh oder im System-Setup.

Wie kann ich herausfinden, was das verursacht, und es lösen?

Einzelheiten:

Client-System

  • Arch Linux x64
  • UTF-8-Codierung

VPS-System

  • Ubuntu Server 10.04
  • Unbekannte Codierung verwendet. Wie finde ich das? (Ich muss nur in meiner /etc/rc.conf nach Arch suchen)

Antworten:


18

Durch Ausführen des localeBefehls erhalten Sie Informationen zu Ihren Ländereinstellungen. Die Zeichenkodierung ist durch die LC_CTYPEEinstellung vorgegeben .

Unter Ubuntu sind die Standardeinstellungen für das Gebietsschema in angegeben /etc/default/locale. Sie können die Zeichenkodierung ändern, indem Sie LC_CTYPEin Ihrem ~/.profileVPS festlegen, z

export LC_CTYPE=en_US.UTF-8

Sie müssen sicherstellen, dass das en_US.UTF-8Gebietsschema verfügbar ist. Ubuntu generiert nur Gebietsschemadaten für die angeforderten Gebietsschemas. Alle englischen Gebietsschemas sollten verfügbar sein, wenn Sie das Paket language-pack-en-baseinstalliert haben. Sie können ihre Generierung manuell mit anfordern

sudo locale-gen en

Sie können auch Einträge hinzufügen /var/lib/locales/supported.d/local, um sicherzustellen, dass ein bestimmtes Gebietsschema installiert ist (z. B. die Zeile hinzufügen en_US.UTF-8 UTF-8).


3

actally angesichts der Wert in LC_CTYPE ist ein locale Namen . Es ist üblich, aber nicht erforderlich, dass die Zeichensatzkodierung im Namen enthalten ist.

Aber wenn Sie sicher den Zeichensatz wissen wollen, dann lautet der Befehl locale -k charmap.

~$ LC_CTYPE=C locale -k charmap
charmap="ANSI_X3.4-1968"
~$ LC_CTYPE=fr_BE locale -k charmap
charmap="ISO-8859-1"

(Beachten Sie, dass der Zeichensatz in den obigen LC_TYPE-Werten nicht angezeigt wird.)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.