Thread encoding mal wieder (20 answers)
Opened by Fragensteller at 2012-09-06 15:23

Fragensteller
 2012-09-06 15:23
#161657 #161657
User since
2012-08-01
37 Artikel
BenutzerIn
[default_avatar]
Hi Leute,
habe mal wieder eine kleine Nuss...

Mein kleines Script...

Code: (dl )
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);
}


Problem ist, ich rufe die Seite ab, lade mir den Inhalt in meine Variable.
Ich benötige den gesamten Content als UTF-8 kodiert.

Ist es kein UTF-8 verwerfe ich es, sonst will ich den Quelltext speichern um diesen später in einem anderen Script weiter zu erarbeiten.

Jetzt ist es aber so, das ich immer "Wide character in print" beim Print FILE erhalte.

Ich frage mich natürlich wie das angehen kann. Erst prüfe ich, ob es UTF-8 ist, dann will ich es als UTF-8 Speichern und bekomme dann den Fehler, das ein Zeichen das nicht im UTF-8 vorhanden ist vorkommt.

Ich tüddel da nun schon Stunden dran rum.

Ziel ist es das ich alles an Quelltext runterladen, egal welche Kodierung vorliegt und diese dann auch HEIL wieder speichern kann.

Umlaute und andere Sonderzeichen wie das € Zeichen werden ja hin und wider als kleine Kästchen oder Fragezeichen oder auch Hyroglyphen angezeigt, wenn ich dann später die Daten öffne.

Vielleicht hat einer eine helfende Idee?

Timo

View full thread encoding mal wieder