Perl Filesystem Encoding erkennen
bearbeitet von pl hallo
> Also gut: Die Daten werden aus dem Windows Filesystem gelesen. Du kannst dir vorstellen, dass die Mehrheit der Dateinamen via Filemanager definiert wurden.
Ich kann mir so Einiges vorstellen. Du hast hier gepostet, daß readdir die Oktetten `D794D7A6EFA29540E282AC2E747874` liefert und ich habe Dir dazu die richtigen Codepoints berechnet:
~~~perl
$, = "\n";
my $hexi = 'D794D7A6EFA29540E282AC2E747874';
my @octs = map{ hex $_ } @{[ $hexi =~ /\w\w/g ]};
my $raw = pack "C*", @octs;
my $utf8 = decode_utf8($raw);
print "Oktetten:\n", @octs, "Codepoints:\n", unpack "U*", $utf8;
Das gibt aus
Oktetten:
215
148
215
166
239
162
149
64
226
130
172
46
116
120
116
Codepoints:
1492
1510
63637
64
8364
46
116
120
116
~~~
Was sich übrigens mit dem übereinstimmt, was [Du hier kommuniziert hast](https://forum.selfhtml.org/self/2018/oct/26/perl-filesystem-encoding-erkennen/1735238#m1735238).
Aber ein ursprünglicher Dateiname `äöü@€.txt` wie Du behauptest, will da einfach nicht dazu passen. Das kann ich nur nachvollziehen, wenn ich Deinen gesamten Code sehe.
Offensichtlich jedoch willst Du das nicht und ziehst es vor, mit mir rumzustreiten.
Troll Dich!
Perl Filesystem Encoding erkennen
bearbeitet von pl hallo
> Also gut: Die Daten werden aus dem Windows Filesystem gelesen. Du kannst dir vorstellen, dass die Mehrheit der Dateinamen via Filemanager definiert wurden.
Ich kann mir so Einiges vorstellen. Du hast hier gepostet, daß readdir die Oktetten `D794D7A6EFA29540E282AC2E747874` liefert und ich habe Dir dazu die richtigen Codepoints berechnet:
~~~perl
$, = "\n";
my $hexi = 'D794D7A6EFA29540E282AC2E747874';
my @octs = map{ hex $_ } @{[ $hexi =~ /\w\w/g ]};
my $raw = pack "C*", @octs;
my $utf8 = decode_utf8($raw);
print "Oktetten:\n", @octs, "Codepoints:\n", unpack "U*", $utf8;
Das gibt aus
Oktetten:
215
148
215
166
239
162
149
64
226
130
172
46
116
120
116
Codepoints:
1492
1510
63637
64
8364
46
116
120
116
~~~
Aber ein ursprünglicher Dateiname `äöü@€.txt` wie Du behauptest, will da einfach nicht dazu passen. Das kann ich nur nachvollziehen, wenn ich Deinen gesamten Code sehe.
Offensichtlich jedoch willst Du das nicht und ziehst es vor, mit mir rumzustreiten.
Troll Dich!