2014-06-26 19 views
5

Sto cercando di sviluppare un programma PERL con Mechanize che consenta di pubblicare contenuti dal mio sito Web su un altro sito Web. Ma ho alcuni problemi con la codifica:Codifica newline, virgolette e carattere speciale con Perl Mechanize

  • non v'è ritorno a capo in un altro sito web quando ho ripubblicare i miei contenuti
  • le virgolette non sono interpretati
  • il simbolo come € non sono interpretati troppo

Il mio sito Web è codificato con UTF-8 e l'altro sito Web è codificato con ISO-8859-15. Ecco un esempio dei dati sul mio sito Web e il risultato pubblicato sull'altro sito Web:

10 M € d'encours/10 M? ? D encours

ecco il mio programma Perl:

#!/usr/bin/perl 

use utf8; 
use strict; 
use warnings; 
use WWW::Mechanize; 
use HTML::TreeBuilder; 
use HTML::TreeBuilder::XPath; 

my $mech = WWW::Mechanize->new(
    stack_depth => 0, 
    timeout => 10, 
); 

$mech->get("RecoveredDataFromMyWebsiteUrl"); 
my $tree = HTML::TreeBuilder::XPath->new_from_content($mech->content); 
my $data = $tree->findvalue('/html/body//div[@id="content"]'); 
$data = Encode::encode("iso-8859-15",$data); 

$mech->get("OtherWebsiteFormularUrl"); 
$mech->form_name("formular")->accept_charset('iso-8859-15');# Form Post Emploi 
$mech->set_fields(
    content => $data 
); 
$mech->submit; 

open FIC,">output.html" 
or die "E/S : $!\n"; 
my $out = select(FIC5); 
print $mech->content; 
+0

Forse questo sarebbe di aiuto: http://stackoverflow.com/questions/627661/how-can-i-output-utf-8-from-perl – Jeef

risposta

1

vorrei cambiare un paio di cose su come si sta scansione del sito, ma forse cercando di fare questo quando si cerca di scrivere su un file durante la codifica utf8:

my $out_file = 'output.html'; 
open (my $fh, ">:encoding(utf8)", $out_file) or die; 
Problemi correlati