hallo Liste, ich komme einfach nicht weiter: Ich habe eine Textdatei von einem amerikanischen Server mit deutschen Umlauten geladen. Wenn ich die Datei auf meiner lokalen, deutschen Suse 9.1 unzippe, ist alles wunderbar, die Umlaute sind richtig. Wenn ich Datei aber auf meinem 1und1 rootServer Suse 9.1 unzippe und anschaue, sind die Umlaute zerstört. Meine lokalen Einstellungen für etc/sysconfig/language: RC_LANG = de_DE.UTF-8 ROOT_USES_LANG = ctype AUTO_DETECT_UTF8 = no alle anderen sind leer Bei meiner lokalen Yast Einstellung für Sprache ist [x] UTF-8 als Kodierung verwenden aktiviert. Bei meinem Server war english eingestellt. Mein erster Versuch war dann nach http://portal.suse.com/sdb/de/2004/05/jbartsh_utf-8.html vorzugehen und mit iconv -f latin1 -t utf-8 dokument.txt >> dokument_neu.txt die Datei umzunwandeln und UTF-8 zu deaktivieren. Hat nichts gebracht. Bei mir lokal geht'S ja auch so. Dann habe ich die gleichen Einstellungen wie bei meiner lokalen Suse eingesttelt hatte, daraufhin war Yast zwar noch auf englisch, die Systemdialoge aber jetzt deutsch. Aber, auf einmal waren auch hier du Umlauet falsch. Z.Bsp war ungültiges Passwort ungà ¼ltiges Passwort. Darauf hin habe ich die Pakete glibc-i18ndata, icu-i18ndata und libicu26 nachinstalliert, und siehe da, in den Systemdialogen habe jetzt auch die Umlaute gestimmt. Aber - meine doofe Textdatei ist immer noch falsch! In einem anderen posting, wurde vorsgeschlagen, die Systemschrift zu ändern. Bringt das was und wo mache ich das? Was soll ich sonst noch versuchen? Gruss Jörg
joerg pfeiffer schrieb:
[...] Ich habe eine Textdatei von einem amerikanischen Server mit deutschen Umlauten geladen. Wenn ich die Datei auf meiner lokalen, deutschen Suse 9.1 unzippe, ist alles wunderbar, die Umlaute sind richtig. Wenn ich Datei aber auf meinem 1und1 rootServer Suse 9.1 unzippe und anschaue, sind die Umlaute zerstört. [...]
Wie es aussieht, ist die Textdatei UTF-8-kodiert. Das kannst Du überprüfen, wenn Du die Datei mit einem Hexeditor öffnest. Umlaute sind bei UTF-8 durch zwei Bytes kodiert, wobei das erste den Wert C3 (hexadezimal) bzw. 195 (dezimal) hat. Bei der Übertragung zum Server werden die Bytes, aus denen die Datei besteht, normalerweise nicht verändert. Die Umlaute werden somit auch nicht "zerstört". Ich würde daher auf ein reines Anzeigeproblem, z.B. des verwendeten Editors oder des SSH-Clients tippen. -- Gruß, Alex
Wie es aussieht, ist die Textdatei UTF-8-kodiert. Das kannst Du überprüfen, wenn Du die Datei mit einem Hexeditor öffnest. Umlaute sind bei UTF-8 durch zwei Bytes kodiert, wobei das erste den Wert C3 (hexadezimal) bzw. 195 (dezimal) hat.
Muss mir noch nen Hexeditor besorgen, habe aber folgendes bemerkt: Wenn ich die Datei im Windows Editor öffne, wird sie richtig dargstellt. Dagegn wird sie in Homesite genauso falsch wie auf meinem Server mit beispielsweise less dargstellt.... Hilft das weiter?
Ich würde daher auf ein reines Anzeigeproblem, z.B. des verwendeten Editors oder des SSH-Clients tippen.
Ich benutze putty, das wie gesagt sonst umlaute richtig darstellt.. Gruss Jörg
* joerg pfeiffer (superbla3000@gmx.net) [20041115 12:48]:
Wenn ich Datei aber auf meinem 1und1 rootServer Suse 9.1 unzippe und anschaue, sind die Umlaute zerstört.
Was sagen 'echo $LANG' und der Aufruf von locale?
Bei meinem Server war english eingestellt.
Was *genau* war eingestellt? Mit LANG=en_US.UTF-8 Sollte es auch auf dem 1&1 Server passen.
Aber - meine doofe Textdatei ist immer noch falsch!
Zwei Dinge sind nötig, damit es passt: die korrekte Einstellung der verwendeten locale (meist über das korrekte Setzen von LANG) und der auf der Konsole verwendete Zeichensatz. Philipp -- Philipp Thomas Research & Development SUSE LINUX Products GmbH, Maxfeldstr. 5, D-90409 Nuremberg, Germany
Was sagen 'echo $LANG' und der Aufruf von locale?
echo $LANG = de_DE@euro locale = LANG=de_DE@euro LC_CTYPE=de_DE@euro LC_NUMERIC="de_DE@euro" LC_TIME="de_DE@euro" LC_COLLATE="de_DE@euro" LC_MONETARY="de_DE@euro" LC_MESSAGES="de_DE@euro" LC_PAPER="de_DE@euro" LC_NAME="de_DE@euro" LC_ADDRESS="de_DE@euro" LC_TELEPHONE="de_DE@euro" LC_MEASUREMENT="de_DE@euro" LC_IDENTIFICATION="de_DE@euro" LC_ALL=
Bei meinem Server war english eingestellt.
Was *genau* war eingestellt? Mit
Weiss ich nicht, da ich das mit der normalen yast Spracheinstellung gemacht habe.
Zwei Dinge sind nötig, damit es passt: die korrekte Einstellung der verwendeten locale (meist über das korrekte Setzen von LANG) und der auf der Konsole verwendete Zeichensatz.
Ich habe zum Testen mal eine auf Windows geschriebene Date mit Umlauten hochgeladen und mit less angesehen - da waren alle Umlaute ok. Auch sehe ich ja die Systemdialoge wie 'ungültiges Passwort' richtig... Für jede Info dankbar Gruss Jörg
Vorab: ich lese die Liste, daher sind zusätzliche Antworten als PM unerwünscht. * joerg pfeiffer (superbla3000@gmx.net) [20041115 20:44]:
LANG=de_DE@euro LC_CTYPE=de_DE@euro LC_MESSAGES="de_DE@euro"
Weiss ich nicht, da ich das mit der normalen yast Spracheinstellung gemacht habe.
Wie sieht die Ausgabe von locale aus?
Auch sehe ich ja die Systemdialoge wie 'ungültiges Passwort' richtig...
Die sind ja auch in utf-8 kodiert, das ist kein Problem. Was Probleme bereitet, sind Dateien, deren Kodierung nicht der für das System gesetzten entspricht, also z.B. ISO 8859-1 aka Latin1 und ein auf utf-8 eingestelltes System. Die Schwierigkeit besteht darin, die Kodierung der Datei festzustellen, da ist schlicht Raten angesagt. Allerdings ist die Auswahl für Westeuropäisch relativ klein: iso8859-1, iso8859-15, cp1252, cp437 oder cp850. Ich würde es einfach mal mit iconv versuchen: for encoding in iso8859-{1,15} cp437 cp850 cp1252; do iconv -f $encoding -t utf-8 datei > datei.$encoding done Philipp -- Philipp Thomas Research & Development SUSE LINUX Products GmbH, Maxfeldstr. 5, D-90409 Nuremberg, Germany
Hi On Monday 15 November 2004 11:40, joerg pfeiffer wrote:
hallo Liste,
ich komme einfach nicht weiter:
Ich habe eine Textdatei von einem amerikanischen Server mit deutschen Umlauten geladen. Wenn ich die Datei auf meiner lokalen, deutschen Suse 9.1 unzippe, ist alles wunderbar, die Umlaute sind richtig. Wenn ich Datei aber auf meinem 1und1 rootServer Suse 9.1 unzippe und anschaue, sind die Umlaute zerstört. Nochmal langsam... Was heißt "auf dem rootServer". Machst du ssh von einem utf8-System auf ein ISO8859-1-System? Zip würde ich als ursache ausschließen, da sich zip sich nicht um den Inhalt der Datei kümmert.
Aber, auf einmal waren auch hier du Umlauet falsch. Z.Bsp war ungültiges Passwort ungà ¼ltiges Passwort.
Das deutet eher auf ein Anzeigeproblem hin. Du kannst noch luit versuchen. Um mich von meinem utf8-System per ssh auf ISO-Systemen einzuloggen benutze ich erst "luit -encoding 'ISO 8859-15'". In luit sollten damit alle Anwendungen so tun können als ob sie auf einem ISO8859-15-System laufen. Danach erst ssh und darin dann less oder was auch immer. Kann sein das ich jetzt irgendwo einen Denkfehler gemacht habe, aber einen Versuch ist es vermutlich wert. mfg Axel
participants (5)
-
Alexander Veit
-
Axel Heinrici
-
joerg pfeiffer
-
Philipp Thomas
-
Philipp Thomas