Hi,

ich hab mal wieder ein kleines Umlaut-Problem.
Ich habe von jemand anderem eine externe Festplatte bekommen. Diese ist mit ext3 formatiert.

Wenn ich sie mounte, dann sind sämtliche Umlaute nur als ? vorhanden.

Dabei ist es egal, ob ich sie in KDE über hal mounte lasse, oder von der Kommandozeile manuell einhänge.

Mein System läuft auf UTF8. Ich vermute, das sein System noch auf ISO8859-1 läuft.

Kann man das irgendwie umgehen?

Bisher habe ich nur Informationen gefunden, wenn so etwas bei NTFS passiert. Die Lösungsvorschläge sind aber für ext3 nicht nutzbar (FDI für hal).

Grüße
Es gibt ein Tool um einzelne Dateien oder auch Verzeichnisse zu konvertieren. Habs allerdings noch nie ausprobiert. Nennt sich convmv. Vielleicht hilft dir das weiter.

edit: Solltest halt vorher rausfinden ob es ISO-8859-15, utf-8 etc ist. Ansonsten könnt ich mir vorstellen das es ein chaos gibt 😉
convmv ist mir bekannt.

Nur irgendwie kann das doch eigentlich nicht die Lösung sein oder?
Ich meine, wenn er die Platte wieder an sein System ran stöpselt, dann stimmts ja sonst wieder nicht.

Und irgendwie kann ich mir nicht so richtig vorstellen, das Linux bei NTFS-Platten mit so etwas umgehen kann, aber bei seinem eigenen Dateisystem geht es nicht.
  • [gelöscht]

Schrauber schrieb Nur irgendwie kann das doch eigentlich nicht die Lösung sein oder?
Ich meine, wenn er die Platte wieder an sein System ran stöpselt, dann stimmts ja sonst wieder nicht.

Und irgendwie kann ich mir nicht so richtig vorstellen, das Linux bei NTFS-Platten mit so etwas umgehen kann, aber bei seinem eigenen Dateisystem geht es nicht.
Du mußt unterscheiden zwischen Anzeige/interpretation der Umlaute anhand deiner locale und
der Ablage auf dem FS.

Die Anzeige kannst du durch Änderung deiner locale verändern, z.B:
LANG=de_DE.ISO-8859-1 ls /mnt/fremde_ext3/dir_mit_files_mit_umlauten
Dadurch weden dir Dateinamen die auf dem FS mit 8859-1 kodiert sind korrekt angezeigt

Wenn du unter dieser Lokale de_DE.ISO-8859-1 jetzt aber eine Datei mit Umlaute etc. im Namen
auf dein UTF8 kopieren würdest, dann sind dort die Umlaute "kaputt"...

Wenn es also nur um kurzfristige Änderung von "was man sieht" geht, dann geht das durch die
Locale. Um es dauerhaft zu ändern hilft nur Umkodieren im FS, also iconv/recode für Inhalte oder
conv,v für Dateinamen.
Ich will schlicht und ergreifend mit der Platte arbeiten. D.h. Dateien drauf kopieren oder auch runter kopieren.
Und zwar so, das sie an verschiedenen Systemen benutzbar ist.
Heißt das nun, das dann zwingend auf beiden Systemen die gleiche Locale gesetzt sein muss?

Weil wenn ich jetzt alles auf UTF8 konvertieren würde, dann hat er ja wieder das gleiche Problem, wenn sein System auf ISOirgendwas läuft.

Wenn ich Dich richtig verstehe, dann würde eine andere Locale beim mount nur die Anzeige verändern. D.h. sobald ich etwas von der Platte auf meine lokale Platte kopiere, dann kommt wieder Müll dabei raus. Ist das richtig?

Irgendwie dreht man sich da im Kreis.
Weil Locale beim mount übergeben bringt nur etwas für die Anzeige.
Und komplett konvertieren verlagert das Problem nur auf das andere System.

Kann es sein, das ext3 für mobile Datenträger vor diesem Hintergrund nicht so ideal ist?
Was wäre dann besser als Dateisystem geeignet, das dieses Problem umgeht?
Schrauber schrieb Ich will schlicht und ergreifend mit der Platte arbeiten. D.h. Dateien drauf kopieren oder auch runter kopieren.
Und zwar so, das sie an verschiedenen Systemen benutzbar ist.
Heißt das nun, das dann zwingend auf beiden Systemen die gleiche Locale gesetzt sein muss?
Ja, im Prinzip schon. Es betrifft ja nicht nur Sonderzeichen in Dateinamen, sondern auch in den
Inhalten.
Und utf8 ist da halt die Allzweckwaffe, da man sich eben genau um diese Dinge keinen Kopf
mehr machen muß...
Schrauber schrieb Weil wenn ich jetzt alles auf UTF8 konvertieren würde, dann hat er ja wieder das gleiche Problem, wenn sein System auf ISOirgendwas läuft.
Genau. Aber man muß sich vergegenwärtigen, daß jeder der heute einen anderen Code als utf8
verwendet der eigentliche "Problemverursacher" ist...
Schrauber schrieb Wenn ich Dich richtig verstehe, dann würde eine andere Locale beim mount nur die Anzeige verändern. D.h. sobald ich etwas von der Platte auf meine lokale Platte kopiere, dann kommt wieder Müll dabei raus. Ist das richtig?
Meim mounten gibt es für ext2/3 keine Option die die Locale beeinflusst. Du kannst (wie ich es oben
mit ls gemacht habe z.B.) durch Ändern deiner Locale die Daten so sehen wie am Rechner deines
Kumpels. Dann aber wieder zu Lasten deines utf8-Systems, da utf8-kodierte Zeichen unter der
anderen Locale auch kaputt aussehen.
Wie das mit dem Kopieren auf deine (utf8) Platte ist bin ich mir nicht 100% sicher, ich habe kein
ISO-System mehr hier...
Schrauber schrieb Kann es sein, das ext3 für mobile Datenträger vor diesem Hintergrund nicht so ideal ist?
Was wäre dann besser als Dateisystem geeignet, das dieses Problem umgeht?
Doch, ext3 ist auch "ideal" - sofern alle Beteiligten utf8 nutzen 😉 Das iust nunmal mittlweile die
breiteste funktionierende Basis für Zeichenkodierung abseits ASCII - der Mensch in der Ukraine
sieht deine Umlaute auf seinem utf8 System z.B. genauso wie du...

Alternativen wären höhstens FSe, bei denen per mount die Konvertierung von Localen vorgenommen
wird, also FAT/ntfs (mit Verlust der Unix-Rechte und ACLs). Bei jfs ist es AFAIK möglich zwischen
utf8 und ASCII zu konvertieren als Mountoption.

Der andere Weg ist konsequente Vermeidung von Sonderzeichen für Datei/Verzeichnissnamen.
Aber auf mich hört ja keiner... 😉
Konsequente Vermeidung kann man machen. Aber die Daten kommen von einem VDR. Und das will ich keine ae's oder ue's sehen. Deswegen soll der das schön mit Umlauten speichern.

Ich werd ihm mal nahe legen, sein System auf UTF8 umzustellen.
Geht aber nur, wenn er VDR 1.6 verwendet. Wenn man noch einen 1.4er VDR benutzt, dann ist man gezwungen ISO zu verwenden. VDR lässt sich sonst nicht mal starten.
Das Problem kommt halt daher, das VDR-System oft Jahre lang unberührt bleiben. Weil sie einfach funktionieren. Das ist ja etwas anders als bei einem Arbeitssystem.