Hallo Am 05.01.2012 09:05, schrieb Werner Franke:
Hallo zusammen,
Ein gesundes neues 2012 wünsche ich Euch allen noch. (Es ist ja noch deutlich vor'm nächsten ;-) ) Danke. gleichfalls..! :-) Ich hoffe Ihr könnt mir bei folgendem Problem einen Tipp geben:
Ich versuchen in Perl Dateien mit Umlauten in Namen zu kopieren und verstehe nicht wieso das nicht (so einfach) funktioniert.
Die Dateien wurden auf Win7 angelegt und ich habe sie von einer USB Disk auf mein Opensuse 11.4 System kopiert. Im xterm und in Dolphin werden die Namen korrekt mit den Umlauten angezeigt. (Ich weiss, dass Sonderzeichen in Dateinamen Probleme machen, aber bevor ich sie Umbenenne, möchte ich doch mein Problem verstehen)
In Perl mache ich (etwas vereinfacht):
my @list = glob("$dir/*.jpg"); : my %objects = {}; foreach my $name (@list) { my $ziel = ... $objects{"$name"} = $ziel; } : : foreach my $srcObject (sort keys %objects) { my $cpresult = `cp "$srcObject" "$destObject" 2>&1`; chomp $cpresult; # oder auch my $status = copy("$srcObject", "$destObject"); }
($srcObject = "Küste-Wanderung-1.jpg") Was passiert wenn du in PERL das UTF-8 pragma setzt? "usr utf-8;" (Siehe http://perldoc.perl.org/utf8.html) Bin kein grosser PERL Spezialist, aber das hat mit bei solchen Probs immer wieder mal geholfen. Vielleicht klappts auch bei dir? Bei "cp "$srcObject" ..." meckert er, dass er das $srcObject nicht findet, wobei "Küste" als "Küste" angezeigt wird, bei "copy()" schaut das kopierte Zielobjekt dann so aus.
Ich denke das dass mit ISO bzw. UTF8 zusammenhängt, aber ich hätte nicht erwartet, dass wenn ich auf einem UTF8 System mit glob() (oder auch mit @liste = `ls ...`) etwas in ein Array einlese, dann den String in ein Hash kopiere und dann kopieren will sich an dem String etwas ändert. Bekommt der Copy-Befehl den String in den falschen Hals ?
Danke für erhellendes.
Opensuse 11.4 64bit KDE 4.7 echo $LANG: de_DE.UTF-8 Perl aus den normalen OS Repros
Grüsse Werner Franke
--Tom -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org