PUTTY und UTF-8
Das Suse-Linux, und sicher auch andere Linux-Versionen können bereits problemlos mit dem internationalen Zeichensatz UTF-8 umgehen, auch in Dateinamen. Das Linux lässt sich aber auch nicht verwirren, wenn ein Dateiname die Umlaute aus dem europäischen Zeichensatz ISO8859-1 verwendet. Das kann ganz gemischt geschehen. Die Frage am Ende ist nur, wie wird es auf der Konsole, oder im Webbrowser der Nutzers dargestellt, und wo muss eventuell wie konvertiert werden, damit das sichtbar wird, was gewünscht ist.
Bei PUTTY sieht die Sache eigentlich ganz einfach aus: Die Linux-Konsole kennt die Umgebungsvariable LC_CTYPE die sollte für deutsche Nutzer entweder den Wert “de_DE” haben, dann “denkt” die Konsole in ISO8859-1, oder sie sollte den Wert “de_DE.UTF-8″ haben, dann “denkt” sie in UTF-8. Damit das im PUTTY dann auch so wahr wird, muss allerdings in der Konfiguration “Window/Translation” in der Auswahl für den Zeichensatz der passende Zeichensatz ausgewählt werden. Wenn Server-Variable und PUTTY-Einstellung gleich sind, funktioniert es. Das heißt:
Im UTF-8-Mode werden alle UTF-8-Sonderzeichen richtig dargestellt, also ein 2 Byte langes ‘ä’ wird richtig als ein ‘ä’ dargestellt. Alle Zeichen, die im UTF-8-Zeichsatz ungültig sind, werden als ? angezeigt, und im UTF-8-Zeichensatz sind die Umlaute und Liniensymbole des ISO8859-1-Zeichensatzes solche ungültigen Zeichen. Also überall, wo Dateienamen im ISO-Zeichensatz erstellt wurden, werden ? angezeigt. Damit lassen sich solche Dateien auf der Konsole nicht kopieren oder umbenennen, da man im UTF-8-Mode das eigentliche Zeichen nicht sieht und auch nicht eingeben kann. Und es gibt Shell-Anwendungen wie das Suse-YAST, die geben ihre Liniensymbole immer im ISO-Zeichensatz aus, egal wie die Umgebunsvariable gesetzt ist. Damit sieht YAST im UTF-8-Mode schrecklich aus.
Arbeitet man dagegen komplett im ISO8859-1-Mode, funktionieren offensichtlich alle Shell-Anwendungen richtig. Mit den Dateinamen sieht es jetzt allerdings ganz anders aus. Nun werden natürlich alle ISO-Zeichen richtig angezeigt und Dateien mit solchen Zeichen können jetzt kopiert und umbenannt werden. Aber mit den UTF-8-Zeichen in Dateinamen gibt es jetzt Probleme. Jetzt wird natürlich jedes Byte einzeln angezeigt, ein UTF-8-”ä” wird als “ä” angezeigt. Das geht ja noch, weil beide Bytes einzeln auch im ISO-Zeichensatz vorkommen. Aber z.B. bei den großen Umlauten ist das zweite Byte ein Zeichen, dass im ISO-Zeichensatz nicht dargestellt werden kann. Hier wird jetzt wieder ersatzweise ein “?” angezeigt, somit wird das Kopieren und Umbenennen auch wieder ein Problem.
Fazit, wer mit UTF-8-Zeichen arbeitet, sollte sich darauf einrichten immer mal wieder zwischen einer UTF-8-Dartsellung und einer ISO8859-1-Darstellung umschalten zu müssen. Das ist, wie oben dargestellt, nicht sehr schwierig. Wer das oft braucht, könnte sich auf der Serverseite kleine Makros schreiben, muss aber daran denken auch im PUTTY die Translation umzustellen.
Ein sehr empfehlenswerter Link zum UTF-8-Zeichensatz ist
http://www.utf8-zeichentabelle.de
on März 8th, 2008 at 22:21
zitat aus lists.opensuse.org:
PuTTY:
“Unter Connection den Terminal-type String auf ‘linux’ setzen. Unter Window Translation UTF-8 einstellen und Use Unicode line drawing code points.”
das funktioniert bei mir (suse 10.1)
on Juni 14th, 2008 at 16:12
Danke an obigen Kommentator. Es funktioniert!
on Dezember 26th, 2010 at 23:51
[...] setzen. Unter Window Translation UTF-8 einstellen und Use Unicode line drawing code points.” (http://www.michael-schummel.de/2007/10/22/putty-und-utf-8) Dieser Beitrag wurde unter Allgemein veröffentlicht. Setze ein Lesezeichen auf den Permalink. [...]
on Januar 8th, 2011 at 17:29
Den Terminal-type String von xterm auf linux zu setzen hat aber leider auch den Nachteil, dass dann unter dem Midnight Commander die Navigation per Maus nicht mehr funktioniert.
on September 15th, 2011 at 09:32
Hallo,
in meiner Putty-Version (Development-Snapshot vom 01.04.2011) steht der “Terminal-type string” jetzt unter Connection > Data.
Aber interessanter finde ich, dass es dort jetzt auch die Möglichkeit gibt, Umgebungsvariablen für eine Sitzung zu definieren. Denn bislang hatte ich immer das “Problem”, dass meine SSH-Sitzungen zu unseren Linux-Servern (die mit Deutsch als Sprache installiert sind) trotz UTF-8 Einstellung in Putty auf Englisch waren (von einem deutschen Windows 7 aus). Nicht wirklich schlimm, fiel mir nur im Vergleich zu einem Kollegen auf, der von einem Linux-Rechner aus per SSH arbeitet und die Ausgaben auf Deutsch hat. Aber seitdem ich da die Variable LANG mit dem Wert de_DE.UTF-8 hinzugefügt habe, sind meine Ausgaben auch auf Deutsch. :-)