Thread UTF-8 und POST-Parameter
(9 answers)
Opened by JoeD at 2008-09-10 12:52 Quote Das ist der erste Fehler: du musst dem Browser schon die Kodierung mitteilen: Code: (dl
)
print "Content-Type: text/html; charset=utf-8\n\n"; Der zweite Fehler ist, dass du die param()-Funktion von CGI neu erfindest. Der dritte Fehler ist, dass $URLRAWDATA dekodierte Parameter enthält wenn wenn die Daten von STDIN gelesen werden (wegen -CS), aber bytestrings aus $ENV{'QUERY_STRING'};. Je nach CGI.pm-Version kann es reichen, sowas zu schreiben: Code (perl): (dl
)
1 2 3 4 5 6 7 use CGI; my $q = CGI->new; $q->charset('UTF-8'); print $q->header(); print $q->param('name'); Bei älteren CGI.pm Versionen musst du noch von Hand dekodieren: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 use CGI; use Encode qw(decode_utf8); my $q = CGI->new; $q->charset('UTF-8'); print $q->header(); my $name = decode_utf($q->param('name')) print $name; Siehe auch Perl und Zeichenkodierungen. |