Disfunctions.de

Das Blog der gnadenlosen Fehlfunktionen!

Umlaute in Dateinamen falsch dargestellt

Erstellt von Matthias am Samstag 10. Juli 2010

Da Windows nicht UTF-8 verwendet, sondern irgendwas in Richtung iso-8859-x hat man bei der Verwendung anderer Systeme manchmal Probleme mit Umlauten und Sonderzeichen oder Akzenten. Ubunut verwendet den UTF-8 Standard, der solche Zeichen anders kodiert. Wenn man nun Dateien bzw. Ordner mit Windows auf eine Festplatte spielt und diese unter Ubuntu nutzen will, hat man hässliche Kodierungsfehler und am Ende des Dateinamens ein „(ungültige Kodierung)“.

Dies kann man mit den Tools utf8migrationtool oder convmv beheben. Ich habe dazu convmv benutzt. Dies kann einfach via Software-Center oder im Terminal per



sudo apt-get install convmv


installieren.

Man kann in ganzen Ordner- und Dateistruckturen auf einmal, also rekursiv, alle falschen Kodierungen beheben lassen. Convmv steht nur über die Kommandozeile zur Verfügung, das reicht aber völlig aus und sit sehr übersichtlich und gut benutzbar! Folgende Optionen hat convm:

USAGE: convmv [options] FILE(S)

-f enc     encoding *from* which should be converted
-t enc     encoding *to* which should be converted
-r         recursively go through directories
-i         interactive mode (ask for each action)
--nfc      target files will be normalization form C for UTF-8 (Linux etc.)
--nfd      target files will be normalization form D for UTF-8 (OS X etc.)
--qfrom    be quiet about the "from" of a rename (if it screws up your terminal e.g.)
--qto      be quiet about the "to" of a rename (if it screws up your terminal e.g.)
--exec c   execute command instead of rename (use #1 and #2 and see man page)
--list     list all available encodings
--lowmem   keep memory footprint low (see man page)
--nosmart  ignore if files already seem to be UTF-8 and convert if posible
--notest   actually do rename the files
--replace  will replace files if they are equal
--unescape convert%20ugly%20escape%20sequences
--upper    turn to upper case
--lower    turn to lower case
--parsable write a parsable todo list (see man page)

Folgender Befehl ist wohl der Standard Anwendungsfall, wenn man die Daten vom Windows iso-8859-x zu UTF-8 kodieren will:


convmv -f iso-8859-15 -t utf8 -r /Pfad/zur/Datei/oder/Ordner/ --notest

Wenn man sich am Anfang noch nicht ganz sicher ist, sollte man das –notest erst mal weglassen, dann bekommt man alle Änderungen erst mal nur aufgelistet ohne dass diese wirklich vorgenommen werden. Mit –notest werden diese dann schließlich wirklich umgesetzt. Den Pfad muss man noch anpassen, wie gesagt, kann man ganze Ordnerstruckturen oder auch nur einzelne Dateien angeben.

Wenn man sehr große Datenmengen bearbeiten bzw. prüfen lässt, kann dies längere Zeit dauern, einfach abwarten, das Programm hat sich nicht aufgehängt auch wenn es länger keine Meldungen gibt! Es arbeitet grundsätzlich sehr flott und hat bei mir auch mehr als 1TB in weniger als 10 Minuten bearbeitet!

6 Kommentare zu “Umlaute in Dateinamen falsch dargestellt”


  1. mason sagt:

    Ein Programm mit ähnlicher Funktion ist „H2rename“. Es hat zusätzlich noch eine grafisch Oberfläche, geschrieben wurde es steht unter Gnu GPL v3.
    http://www.heise.de/ct/artikel/H2rename-Dateien-und-Verzeichnisse-umbenennen-292168.html


  2. FERNmann sagt:

    Soweit ich weiß benutzen die neueren Windows-Versionen auch UTF-8. Das es bei Windows 9x -> Linux zu Problemen bei der Kodierung kommen kann ist ja bekannt, aber wie siehts mit XP, Vista und 7 aus? Welches Windows benutzt du denn?


  3. Hans Otto sagt:

    Na, ich bin ein wenig skeptisch, da die Umlaute in der Datei wohl erhalten bleiben, und so hatt man Datei und Dateinamen in zwei verschiedenen Formaten, wenn ich das richtig verstanden habe?


  4. Matthias sagt:

    Es geht ja erst mal nur darum, dass die Ordnerstruckturen und Ordnerinhalte auf verschiedenen Systemen sauber angezeigt werden. Das Ganze auch auf die zig verschiedenen Dateiformate zu übertragen, halte ich für eher weniger sinnvoll. Denn es wird wohl kaum so ohne weiteres mögloch sein, für jedes Format das passende zu setzen und außerdem müsste das Tool dann ja jedes Dateiformat beherrschen.
    Man denke an die Office Dokumente oder ähnliches, ich glaube nicht dass dies sinnvoll ist. Vor allem da die meisten Programme ja auch die unterschiedlichen Zeichensätze beherrscht. Also wieso etwas ändern, was funktioniert.

    Oder kennst du ein Tool, dass all dies beherrscht und trotzdem flott und zuverlässig arbeitet?


  5. der grosse Andere sagt:

    Fehlerhafte Zeichenkodierung in Dateinamen korrigieren (Archive/Windows)…

    Ich habe ab und an das Problem, dass ich hier Archive habe aus denen beim Entpacken Dateien oder Ordner rauskommen deren Sonderzeichen defekt sind. Aus Zeichen wie ö,ä,ü oder ? werden dann solche �. Dateien kann ich meist mit cp kopieren und die Kopie …


  6. Fehlerhafte Zeichenkodierung in Dateinamen korrigieren (Archive/Windows) sagt:

    […] Blogeintrag (http://disfunctions.de/tutorials/umlaute-in-dateinamen-falsch-dargestellt/) hat mich auf der Suche nach einer Lösung für mein Problem ein ordentliches Stück weiter […]

Kommentar schreiben

XHTML: Sie können diese Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>