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
use utf8;
use LWP::Simple;
use WWW::Mechanize;
.....
$browser = WWW::Mechanize->new(
stack_depth => 0, # infinite History
timeout => 180, # Network inactivity
autocheck => 1, # auto die on errors
quiet => 1,
);
$browser->add_header( 'User-agent' => 'Mozilla/5.0 (Windows; U; Windows NT 6.1; nl; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13');
$browser->add_header( Encoding => 'text/UTF-8' );
$browser->add_header( Referer => undef );
$browser->get( $sURL );
$sContent = $browser->content();
$sEncodingName = Encode::Detect::Detector::detect($sContent);
if ( $sEncodingName eq "UTF-8" ) {
open FILE, '>:utf8', $ziel or die "$ziel: $!";
print FILE $sContent;
close(FILE);
}
2012-09-06T13:26:46 jangeht ">:utf8" denn wirklich als Kurzform für ">:encoding(utf8)"?
Quoteopen my $fh, ">:utf8", $filename
or die "could not open $filename: $!\n";
2012-09-06T13:33:53 janMh, ok, versuch's dennoch mal mit der Langform, das klappt eigentlich immer ziemlich zuverlässig.
Generell solltest Du dich natürlich eher auf die Angaben, die vom Server zurückkommen verlassen und nicht unbedingt mit Detection rumwerkeln.
perldoc -f binmode...
To mark FILEHANDLE as UTF-8, use :utf8 or :encoding(UTF-8) . :utf8 just marks the data as UTF-8 without further checking, while :encoding(UTF-8) checks the data for actually being valid UTF-8. More details can be found in PerlIO::encoding.
...
2012-09-06T13:36:30 LinuxerDie beiden haben einen kleinen, aber feinen Unterschied:
perldoc -f binmode...
To mark FILEHANDLE as UTF-8, use :utf8 or :encoding(UTF-8) . :utf8 just marks the data as UTF-8 without further checking, while :encoding(UTF-8) checks the data for actually being valid UTF-8. More details can be found in PerlIO::encoding.
...
ah ok, also besser mit der langform arbeiten.
ich bin gespannt ob das jetzt klappt.
http://perldoc.perl.org/functions/binmode.html
QuoteJetzt ist es aber so, das ich immer "Wide character in print" beim Print FILE erhalte.