2014-06-26 63 views
5

ile yeni satır, tırnak ve özel karakter kodlama Ben bir başka web sitesinde web sitemden içeriği yeniden göndermeye izin verecek bir Mechanize ile PERL programı geliştirmeye çalışıyorum. Ama kodlaması ile bazı sorunlar var: satır başka web sitesine yokturPerl Mechanize

  • Ben tırnak
  • € gibi sembol
çok yorumlanır değildir yorumlanmaz
  • benim içeriği tekrar yayınladıkları

    Web sitem UTF-8 ile kodlanmış ve diğer web sitesi ISO-8859-15 ile kodlanmıştır. Web sitemdeki verilerden örnek ve diğer web sitesinde yayınlanan sonuç:

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

    encours benim PERL programıdır:

    #!/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

    Belki de bu yardımcı olacaktır: http://stackoverflow.com/questions/627661/how-can-i-output-utf-8-from-perl – Jeef

    cevap

    1

    Sana kodlarken bir dosyaya yazmaya çalışırken bu yapmaya çalışıyor belki siteyi tarayarak, ama nasıl hakkında bir kaç şey değiştirecek utf8:

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