用Perl Mechanize编码换行符、引号和特殊字符
我正在尝试开发一个带有Mechanize的PERL程序,它将允许我在另一个网站上重新发布我网站上的内容。但我在编码方面有一些问题:用Perl Mechanize编码换行符、引号和特殊字符,perl,encoding,mechanize,Perl,Encoding,Mechanize,我正在尝试开发一个带有Mechanize的PERL程序,它将允许我在另一个网站上重新发布我网站上的内容。但我在编码方面有一些问题: 当我重新发布我的内容时,其他网站中没有换行符 引用不被解释 像欧元这样的符号也不会被解释 我的网站用UTF-8编码,另一个网站用ISO-8859-15编码。 以下是我网站上的数据样本和其他网站上发布的结果: 1000万欧元进账/1000万欧元?d?安可 这是我的PERL程序: #!/usr/bin/perl use utf8; use strict; use
- 当我重新发布我的内容时,其他网站中没有换行符
- 引用不被解释
- 像欧元这样的符号也不会被解释
#!/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;
或许这将有助于: