Meise2000: CGI.pm und binmode?

Beitrag lesen

Hallo,

binmode STDIN => ':utf8';

my $q = CGI->new;

  
habe ich probiert, aber es führt leider nicht zum gewünschten Erfolg.  
  
Mein Ziel ist es, alle Zeichen als UTF-8 entgegen zu nehmen und - falls  es sich um kein ASCII-Zeichen handelt, als &#[ZAHLWERT\_DES\_ZEICHENS]; wieder an den Browser zu schicken.  
  
Zunächst habe ich das so gemacht:  
  
~~~perl
  
my $q = CGI->new;  
my $param = $q->param("param");  
  
# jetzt uncodieren  
$param = Encode::decode_utf8($param)  
my ( @res, $c );  
foreach $c ( unpack( "U*", $string ) ) {  
  if ( $c > 127 || $c < 32 ) {  
      push( @res, '&#' . $c . ';' );  
  } else {  
    push( @res, chr($c) );  
  }  
}  
my $encParam = ( join( '', @res ) );  

Das hat auch wunderbar funktioniert, aber leider ist bei meinem Provider "Encode" nicht installiert. Brauche eine Alternative und bin für jede Hilfe dankbar. Der Ansatz:

  
binmode STDIN => ':utf8';  
my $q = CGI->new;  
my $param = $q->param("param");  
  
# jetzt uncodieren  
my ( @res, $c );  
foreach $c ( unpack( "U*", $string ) ) {  
  if ( $c > 127 || $c < 32 ) {  
      push( @res, '&#' . $c . ';' );  
  } else {  
    push( @res, chr($c) );  
  }  
}  
my $encParam = ( join( '', @res ) );  

schlägt fehl.

Danke,
Meise.