Thread 'ls' und utf-8-Dateinamen (5 answers)
Opened by moritz at 2007-11-03 13:49

moritz
 2007-11-03 13:49
#101738 #101738
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
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:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl
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:
Code: (dl )
1
2
$ echo *
Die Schlümpfe.ogg rename.pl


Nur ls weigert sich, den Umlaut korrekt anzuzeigen:
Code: (dl )
1
2
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

View full thread 'ls' und utf-8-Dateinamen