perl – WWW ::机械化和广角警告

当我尝试使用以下代码下载一些 HTML文件时:
$mech->get($link)
$mech->save_content("file.html");

我收到警告:

Wide character in print at C:/strawBerry/perl/site/lib/WWW/Mechanize.pm line 2040.

有人可以解释我如何修复此警告吗?

解决方法

您需要确保使用正确的编码打开输出文件句柄.

从简单的浏览文档来看,它看起来并不像Mech对已保存文件的可配置编码,因此您可以抓取内容并自行保存:

$mech->get( $link );
my $content = $mech->content;

open my $fh,'>:utf8',$file or die "$file: $!";
print $fh $content;

打开的utf8位将确保发送到文件句柄的数据被正确编码为UTF-8.

另一种方法是手动编码:

use Encode;
my $content = encode 'utf8',$mech->content;

open my $fh,'>',$file or die "$file: $!";
binmode $fh;
print $fh $content;

相关文章

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