Hallo,
ich habe ein relativ frisch installiertes Debian Etch, und meine xterms laufen alle unter utf-8. Das funktioniert auch wunderbar, bis auf `ls'.
Ich habe einige Musikdateien, die ich von einer alten fat32-Partition kopiert habe, und die in latin1 kodiert waren. Natürlich werden dann bei einem `ls' die Dateinamen falsch angezeigt, anstelle der Umlaute erscheinen schwarze Fragezeichen auf weissem Grund.
Also habe ich mir ein Skript geschrieben, das die Dateinamen nach utf-8 kodiert:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use strict;
use warnings;
use Encode;
use File::Copy;
for (glob '*'){
my $utf8_fn = decode('latin1', $_);
$utf8_fn = encode("utf-8", $utf8_fn) , "\n";
if ($utf8_fn ne $_){
print "Moving from $_ to $utf8_fn\n";
move($_, $utf8_fn);
}
}
Das funktioniert auch prächtig, in der Ausgabe des prints wird der utf-8 kodierte String korrekt angezeigt, und auch ein 'echo *' auf der shell funktioniert:
$ echo *
Die Schlümpfe.ogg rename.pl
Nur ls weigert sich, den Umlaut korrekt anzuzeigen:
ls
$ Die Schl??mpfe.ogg rename.pl
Was kann ich machen, um ls zum laufen zu bringen? Ist das ein Bug in ls?
Danke schon mal im Voraus