使用Perl Mechanize编写换行符,引号和特殊字符

我正在尝试使用Mechanize开发PERL程序,这将允许我从我的网站上重新发布其他网站上的内容.但我在编码方面遇到了一些问题:

>当我重新发布我的内容时,其他网站上没有换行符
>引号不解释
>像€这样的符号也没有被解释

我的网站使用UTF-8编码,另一个网站使用ISO-8859-15编码.
以下是我网站上的数据样本以及其他网站上公布的结果:

10 M€d’encours / 10 M? d?encours

这是我的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;

解决方法

我会改变一些关于你如何抓取网站的事情,但是在编写utf8时尝试写入文件时可能会尝试这样做:

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

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...