Ok, hier ein bisschen Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/Perl/bin/perl
use strict;
use warnings;
use Data::Dumper qw/Dumper/;
use utf8;
use Encode qw/decode_utf8 encode_utf8 is_utf8 decode/;
use FindBin qw/$Bin/;
use CGI qw/fatalsToBrowser/;
use CGI::Carp qw/fatalsToBrowser/;
use FileHandle;
use Log::Log4perl qw(:easy);
use Devel::Peek;
#Log::Log4perl->easy_init( { level => INFO, file => ">> $Bin/log/instance_run.log" } );
use open ':encoding(UTF-8)';
use open ':std';
my $q = CGI->new();
my $keyword = $q->param('keyword');
$keyword = decode_utf8( $keyword ) unless is_utf8( $keyword );
die("Missing keyword") unless $keyword;
print $q->header(-charset => 'utf-8');
my $keyword2 = $q->param('keyword');
print $keyword;
print "<br />";
print $keyword2;
print "<br />";
print "ist utf8? -> " . Dumper(utf8::is_utf8($keyword2));
print "<br />";
die($keyword);
Das ist ein CGI-Skript, das einen Parameter keyword erwartet.
Die Ausgabe bei mir lautet:
Quote�bung
Übung
ist utf8? -> $VAR1 = '';
Software error:
�bung at C:/Apache/cgi-bin/netmed/sc/tools/ajax_gscrape.cgi line 39.
Und da wollte ich halt mal nachsehen, was da tatsächlich kommt und ob es utf8 ist.
Edit: das Skript lief auf Snow Leopard mit perl 5.10 und hier zum Testen habe ich Win7 mit perl 5.10.1
Last edited: 2010-06-10 13:32:53 +0200 (CEST)