ForumProblem mit Umlauten
Roland 22 – Sonntag, 13. Februar 2005 21:31 Uhr

Hallo Alle zusammen,

ich arbeite das erste mal mit Linux (Suse 9.2, KDE). Komme auch ganz gut zurecht damit.

Ich habe hier zum Thema Umlaute schon die Suche benutzt. Doch keine Antwort auf mein Problem gefunden.

Gebe ich jemandem der mit Windows arbeitet eine Datei deren Dateiname Umlaute enthält , so werden diese Dateien von Windows manchmal “beanstandet” immer jedoch werden die Umlaute falsch dargestellt (irgendwelche “Ersatzzeichen”).

Gebe ich Textdateien weiter, werden die darin enthaltenen Umlaute durch irgend welche komischen Sonderzeichen ersetzt :( :(

Was muss ich unternehmen, das die durch mich auf SUSE 9.2 erstellten Dateien auch von anderen Leuten gelesen werden können?

Das betrifft auch Dateien, die ich erhalte, bearbeite und wieder zurück gebe.

Vorher mit Windows hatte ich überhaupt keine Probleme, Dateien (Name und Inhalt) zu bearbeiten und lesbar weiter zu geben.

Was macht hier Linux falsch?

Mit freundlichen Grüßen
Roland

1 Antwort
Harald Nikolisin – Sonntag, 13. Februar 2005 23:10 Uhr

hi roland Zeichen jenseits der ASCII Ordnung 127 sind eins der größten Probleme der IT überhaupt und werden es noch lange bleiben.

Windows (westlich) verwendet bei der Kodierung der Dateinamen den Zeichensatz ISO-8859-1 (nicht ganz exakt, reicht aber als Näherung) während SuSE 9.1 aufwärts UTF-8 (Unicode) verwendet.
Diese zwei verschiedenen Zeichensätze stellen nur die erste 127 Zeichen des alten ASCII standard gleich da.
Die erste Lösung wäre Windows UTF-8 beizubringen, aber diese Variante scheidet unter dem schallenden Gelächter aller aus, die schon mal versucht haben Windows irgendwas beizubringen. Zweite Möglichkeit wäre Linux auf ISO-8859-1 umzustellen. Dies ist zwar recht einfach möglich könnte aber üble Seiteneffekte nach sich ziehen (Programme reagieren ohne Anpassung nicht mehr wie gewohnt). Deshalb schlage ich folgendes vor:

Alle Dateien die von beiden Systemem genutzt werden liegen auf einem speziellen Austauschverzeichnis, welches in /etc/fstab mit dem parameter iocharset=iso8859-1 gemountet wird. Wenn Dateien von Linux aus in dieses Verzeichnis wandern werden sie mit dem Program convmv in das ISO-8859-1 Format transferiert. Dies kann ja ev. durch skripte automatisch passieren.

Dies war der Vorschlag für Datei-/Verzeichnisnamen. Bei den Inhalten von Textdateien (reiner Text,kein Binärformat wie es Office Programme verwenden), sollte man auch unter Windows einen Editor verwenden den man bei Bedarf auf UTF-8 umschalten kann. Unter Linux kann man die gängigen Editoren auch im Zeichensatz umschalten. Wenn man dennoch den Inhalt einer Textdatei konvertieren will, nimmt man das iconv Kommando, welches das Pendant zu convmv ist.

Wer allerdings auf einer grünen Wiese anfangen kann und neben Linux ein Betriebssystem benötigt, auf dem bekannte kommerzielle Programme laufen, die es unter Linux nicht gibt, sollte sich ein Mac zulegen. Linux und Mac verstehen sich im Netzwerk recht gut – jedenfalls wesentlich unproblematischer als die Windows-Linux Kombination

Roland 22 – Montag, 14. Februar 2005 13:00 Uhr

Hallo Harald,

herzlichen Dank für Deine Erklärung und für Deine einleuchtenden Sätze. Auch
für einen einfachen Nutzer eines Computers, viele würden wohl “DAU” dazu
sagen, ist Deine Erklärung verständlich. Danke.

Doch was ist die Konsequenz.

Einer kleinen Firma mit 2 Angestellten und 3 Computern und deren jahrelang
funktionierenden Officelösung kann ich, der nun zu Hause “nun plötzlich” Linux nutzt nicht
sagen, “Also bitte Leute, Windows verhält sich entgegen aller Normen, schafft
Euch einen Mac an. Besser noch, bringt Linux auf Eure Systeme. Allerdings
müsst Ihr dazu auch noch den gesammten Officekram umstellen.”
Auch kann ich diese Sätze nicht alle denen Sagen, mit denen ich schon immer
Dateien und Texte ausgetauscht habe.

Also was ist die Alternative dazu, für mich.
Wieder zurück zu Windows?

Ich möchte es anders versuchen. Dabei hoffe ich, auf die Hilfe des Forums
rechnen zu können.
Die Konvertierung der Dateinamen kann ich mit etwas gutem Willen verstehen.
[Zitat]
Deshalb schlage ich folgendes vor:

Alle Dateien die von beiden Systemen genutzt werden liegen auf einem
speziellen Austauschverzeichnis, welches in /etc/fstab mit dem parameter
iocharset=iso8859-1 gemountet wird. Wenn Dateien von Linux aus in dieses
Verzeichnis wandern werden sie mit dem Program convmv in das ISO-8859-1
Format transferiert. Dies kann ja ev. durch skripte automatisch passieren.

Dies war der Vorschlag für Datei-/Verzeichnisnamen.
[/Zitat]

Da ich sowieso vor habe, für das /home-Verzeichnis eine 2te Festplatte
einzubauen, würde sich dieser Schritt für die gesamte Festplatte “/home”
anbieten?
Grund:
Ich benötige wirklich ALLE Daten, die ich selbst erzeuge so, daß sie auf anderen Computern mit anderen Betriessystemen lesbar und auch weiter zu verarbeiten sind.

[Schulterklopf]
Ich habe nach langem Suchen eine Datei “fstab” gefunden :) :) :)
[/Schulterklopf]

Der jetzige Eintrag in der fstab Ich hoffe, das ist die richtige Zeile, lautet:
/dev/hdc4 /home reiserfs acl,user_xattr 1 2

muß das dann wie folgt aussehen?
/dev/hdc4 /home iocharset=iso8859-1 acl,user_xattr 1 2

Wie gesagt, ich habe keine Ahnung von dem ganzen Programmieren, ich möchte einfach nur mit meinem Rechner arbeiten.

Nun habe ich aber gesehen, daß im Verzeichnis /home/Roland/ noch viele andere Verzeichnisse und Dateien liegen, die wahrscheinlich bei der Installation von Programmen dort angelegt wurden.
Da ist es, nach Deinen Zeilen zu urteilen, sicher nicht ratsam, die gesamte Festplatte “/home” mit “iocharset=iso8859-1” einzubinden?

Wenn das wirklich so nicht gehen sollte, gäbe es noch eine Möglichkeit.

Zwei Verzeichnisse kommen in Frage, in denen ich meine “Eigenen Daten” (Mail, Dokumente usw.) ablege:
/home/Roland/Documente/
und
/home/Roland/Mail/
und einen habe ich noch ;)
/home/Roland/Projekte/

unterhalb dieser Verzeichnisse wiederum jede Menge andere Verzeichnisse.

Wie binde ich nun (falls gesamt /home nicht in Frage kommen sollte) diese Verzeichnisse mit “iocharset=iso8859-1” ein?

Werden dann diese Dateien / Dateinamen die ich dort ablege “automatisch für Windows aufbereitet” oder muß ich da noch Hand anlegen?

Zweites Problem ist der Inhalt der Dateien.

[Zitat]
Bei den Inhalten von
Textdateien (reiner Text,kein Binärformat wie es Office Programme verwenden),
sollte man auch unter Windows einen Editor verwenden den man bei Bedarf auf
UTF-8 umschalten kann. Unter Linux kann man die gängigen Editoren auch im
Zeichensatz umschalten. Wenn man dennoch den Inhalt einer Textdatei
konvertieren will, nimmt man das iconv Kommando, welches das Pendant zu
convmv ist.
[/Zitat]

Die Leute, von denen ich Dateien erhalte, sind mir zum einen kaum bekannt.
Andere wiederum denken “ich komme vom Mond” wenn ich denen sage:
“Bei den Inhalten von
Textdateien (reiner Text,kein Binärformat wie es Office Programme verwenden),
sollte man auch unter Windows einen Editor verwenden den man bei Bedarf auf
UTF-8 umschalten kann.”

Die arbeiten schon JAHRE mit IHREN Editoren und werden einen alten Dreck tun etwas anderes zu verwenden oder gar “irgend welche crypische” Einstellungen vorzunehmen.
Die “arbeiten schon immer so, und ALLE Leute denen die Dateien und Texte zukommen lassen, habe sich noch nie beschwert über lesbarkeit von Texten”.

Ich möchte immer noch nicht aufgeben, weder möchte ich zu Windows zurückkehren, noch möchte ich Linux in die Hölle schicken.

[Zitat]
Unter Linux kann man die gängigen Editoren auch im
Zeichensatz umschalten.
[/Zitat]

Wo mache ich das bei OpenOfficeOrg und bei Bluefish und bei KWrite und NVU (ist ein Webeditor)?
Bei KWrite habe ich unter “Einstellungen-Speichern gefunden, daß man den Zeichensatz von UTF8 z.B. auf “Westeuropäisch (iso 8859-1) stellen kann. Es gibt aber auch “iso-8859-15”. Auserdem ist im Moment die Einstellung “Zeilenende” auf Unix eingestellt.
Die möchte ich ich warscheinlich auf “Dos/Windows” umstellen??
Bei Bluefish gibt es gleich eine ganze lange Liste von “8859- . . .”

Oder ist dieser ganze “Einstellungskram” falsch und es wird alles erledigt durch :
[Zitat]
Wenn man dennoch den Inhalt einer Textdatei
konvertieren will, nimmt man das iconv Kommando, welches das Pendant zu
convmv ist.
[/Zitat]

Zumal ich ja nicht alle Dateien weggebe. Das meist behalte ich selbst und benutze es unter Linux.

Eine Menge Fragen und Probleme, die sich mir auftun, wenn ich daran denke, weiterhin mit Linux arbeiten zu wollen. Ich hoffe, Ihr könnt mich darin bestärken und ein paar Fragen beantworten.
Vielen Dank schon im Vorraus.

Mit freundlichen Grüßen
Roland

Murphy – Montag, 14. Februar 2005 13:36 Uhr

Wie du ja schon weißt beherrscht unter Linux eigentlich jeder gute Editor die wesentlichen, wenn nicht sogar alle relevanten Zeichensätze; eine Konvertierung oder die Verwirrung von Windows-Usern mit Fachbegriffen ist deshalb i. d. R. nicht notwendig, besser du nimmst was kommt und freust dich daß du mit Linux *alles* ansehen kannst. Office-Dokumente (egal ob von OOo oder MS) dürfen auch gar nicht konvertiert werden, die mußt du als Binärdateien betrachten (für die Auswahl des korrekten Zeichensatzes ist das Officeprogramm zuständig).
Bleiben als Problemfälle im Wesentlichen also Plaintext- und HTML-Dateien. Bei HTML-Files ist die Sache einfach, da steht normalerweise die korrekte Codierung im Kopf (wenn nicht und das Dokument enthält mehr als die Basis-ASCII-Zeichen bis 127 dann klopf’ dem Verfasser auf die Finger). Wenn gar nichts hilft kannst du eine Textdatei immer noch mit vi öffnen (erkennt die allermeisten Zeichensätze korrekt) und mit :set encoding den Zeichensatz abfragen.
Hier die bei uns gebräuchlichsten Zeichensätze: UTF8/16: Universalformat, das nur bei MS noch nicht so richtig angekommen ist. ISO-8859-1: Westeuropäische Zeichensätze, aka. Latin1 (z. B. in vi). ISO-8859-15: Wie -1, aber mit Euro-Zeichen. CP1252: Windows-spezifische Codepage, AFAIK Default in deutschen Windowsversionen ab Win95 :-( CP437/850: Veraltete DOS-Codepages für US- bzw. westeuropäischen ASCII-Zeichenvorrat. Einen guten Einstieg zur Vertiefung findest du z. B. unter [1].

[1] http://de.selfhtml.org/inter/zeichensaetze.htm

Harald Nikolisin – Montag, 14. Februar 2005 22:22 Uhr

hi roland ich würde auf dem linux rechner eine partition anlegen, die ausserhalb des home Verzeichnisses liegt, z.B. /storage oder /export .Die Namen sind frei gewählt, den grund die dateien ausserhalb von /home zu speichern hast du selbst genannt. Dort werden alle erzeugten Dateien gespeichert die auch von Windows Systemen benutzt werden, der mögliche fstab eintrag wäre: /dev/hdc4 /export iocharset=iso8859-1 acl,user_xattr 1 2 wenn ich die manuals richtig verstehe, dann sollten dateien die dort gespeichert werden automatisch ISO-8859-1 kodiert sein – selber ausprobiert hab ichs nicht.

Zum Inhalt der Dateien: Wie gesagt, dass Problem sind ausschliesslich reine Textdateien. Lass einfach die Windows User weiterarbeiten wie bisher und stelle sicher dass diese Dateien unter Linux eben als ISO-8859-1 kodierte Dateien (z.B. Kate/KWrite) bearbeitet werden, dann ist doch alles in Butter.

Auch wenn der Umstieg mühsam scheint, er lohnt sich allemal. Eine installierte Linux Workstation kann man jahrelang ohne Admin Aufwand betreiben :)

Murphy – Dienstag, 15. Februar 2005 09:45 Uhr

dann sollten dateien die dort gespeichert werden automatisch ISO-8859-1 kodiert sein
Hoffentlich nicht – IMHO bezieht sich die Konvertierung nur auf die Dateinamen, nicht auf die Inhalte, das gäbe sonst Chaos…
Eine installierte Linux Workstation kann man jahrelang ohne Admin Aufwand betreiben
Nunja, dieses Argument ist auch für Linux zu relativieren. Zumindest Sicherheitsupdates sollte man regelmäßig einspielen sofern der Rechner am Netz hängt, wie bei allen anderen OS auch. Wenn man aber sonst keine aktualisierte Software benötigt läuft eine Linux-Installation einfach durch bis es einem zu langweilig wird und man freiwillig eine neuere Distri aufspielt :-)

Harald Nikolisin – Dienstag, 15. Februar 2005 10:15 Uhr

dann sollten dateien die dort gespeichert werden automatisch ISO-8859-1 kodiert sein

ich meine natürlich die kodierung des dateinamens/verzeichnisnamens selber und nicht den inhalt.