Perlfa: Wie speichert man eine multisprachige Web-Seite in utf8-Format?

Hallo zusammen,
ich crawle mit LWP::UserAgent ein paar multisprachige Seiten und möchte die Seiten in UTF-8 Format speichern. Damit kann ich später alle Seiten zusammen bearbeiten.
Das Programm sieht so aus:

#!/usr/bin/perl -w
use strict;

use LWP::UserAgent;
use Encode qw(decode_utf8);

my $paramURL = "http://www.bauer-kompressoren.de/cn/agb.php";
my $meinBot = LWP::UserAgent->new();
$meinBot->agent('Netscape/4.75');
$meinBot->timeout(60);
$meinBot->max_size(1000000);

my $meinRequest = HTTP::Request->new( 'GET', $paramURL );
my $meinResponse = $meinBot->request( $meinRequest );

my $PageString = '';
if( $meinResponse->is_success ) {
 $PageString = $meinResponse->content;
}
$PageString = decode_utf8( $PageString );

open( my $FHout, '>:utf8', "page.html" ) || die "$!";
print $FHout "$PageString\n";
close( $FHout );

Die Datei wird auf einem Debian-OS gespeichert. Die Defalt-Sprache ist de_DE.utf8. Aber hier sind alle chinesischen Zeichen jetzt unbekannt geworden. Wo ist das Problem? Danke voraus!

Gruß!
Perlfa

  1. Hallo,
    So weit ich das sehe, setzt Deine Lösung voraus, dass das gelieferte Dokument bereits als UTF8 ankommt:

    $PageString = decode_utf8( $PageString );

    Das ist aber nicht zwingend der Fall, sondern hängt von dem Webserver ab, der die chinesische Seite ausliefert.
    Du müsstest also den Content-Type des Webservers, den Du mit LWP:UserAgent ansurfst, auslesen (müsste irgendwo in der LWP-API stehen, wie das geht), dann das gelieferte Dokument basierend auf diesem Content-Type dekodieren und dann wieder in UTF8 enkodiert abspeichern.

    Viele Grüße,
    Jörg

    1. Hallo Jörg,
      prima! habs endlich geschafft. vielen dank!

      Gruß
      Perlfa