Jean-Max: Alle guten Dinge sind dreist: Schon wieder Schei? Encoding...

Beitrag lesen

Bounjoun hotti,

Das hilft alles nichts, Hotti.

Ich habe jetzt diese Zeilen Code:

#######################################################  
use Encode qw(encode decode);  
use URI::Escape;  
  
my $xyz = '%F6ffnen';  
my $cba = decode('ISO-8859-1', $xyz);  
my $abc = encode('UTF-8', decode('ISO-8859-1', $xyz));  
my $cde = l_t_u($xyz);  
sub l_t_u {  
  return pack("U*", unpack("C*", shift));  
}  
#my $fgh = uri_unescape($xyz);  
my $fgh = uri_unescape(decode('ISO-8859-1', $xyz));  
#######################################################  

Ausgabe:

$xyz = %F6ffnen $abc = %F6ffnen $cde = %F6ffnen $fgh = �ffnen $cba = %F6ffnen

Kann das sein, dass dieser »cas de figure« programmiertechnisch gar nicht vorgesehen ist? Dass man aus einem ISO-URL-endoded-String, oder wie man immer das nennen will, wieder ein UTF8-Dekodierbarer macht?

Verdammt, es muss doch eine Lösung geben!

Noch mal das Testcase gekürzt:

Der Hash %kw enthält zu 99% »gute Strings«, und zu etwa 1% Sonderlinge:

%C3%B6ffnen => 99
%F6ffnen => 1

Ich will nur die schlechten zu guten machen!

Adiou.

--
Ich bin eigentlich ganz anders, aber ich komme so selten dazu. - Ödön von Horwáth