Vielen Dank schon mal, das löst das Problem der »schlechten« Strings... macht aber die »guten« unleserlich:
was heißt unleserlich?
my $xyz = '%C3%B6ffnen';
my $fgh = encode('utf-8', uri_unescape($xyz));
print $fgh;
Wieso willst du einen utf-8 String in einen utf-8 String umwandeln???? Du machst hier eine doppelte Kodierung.
> Das Problem: Ich kann nicht beeinflußen, was in das Logfile 'reinkommt. Ich kann nur arbeiten mit dem, was da drin ist. Und da sind in der Regel Strings, die sich problemlos mit $cgi->unescape($query) in lesbare Charakter umwandeln lassen.
Wenn sie in der Kodierung vorliegen, die du haben willst.
> Jetzt die Frage, was habe ich für Möglichkeiten, die »schlechten« zu erkennen, um sie anders zu behandeln?
erkennen geht nicht, nur raten <http://perldoc.perl.org/Encode/Guess.html>
Struppi.