【发布时间】:2012-04-27 18:30:51
【问题描述】:
我有一个将下载 www 页面的脚本,我想提取文本并将其存储在统一编码中(UTF8 就可以了)。下载(UserAgent)、解析(TreeBuilder)和文本提取看起来不错,但我不确定我是否正确保存它们。
在例如记事本++中打开输出文件时,他们不查看;原始 HTML 视图可在文本编辑器中找到。
HTML 文件通常包含 字符集=windows-1256 或 charset=UTF-8
所以我想如果我可以让 UTF8 工作,那么这只是一个重新编码的问题。这是我尝试过的一些方法,假设我有一个 HTML 文件保存到磁盘。
my $tree = HTML::TreeBuilder->new;
$tree->parse_file("$inhtml");
$tree->dump;
为 STDOUT 捕获的转储输出仅在 .txt 文件中正确显示 在文本编辑器中将编码切换为 utf8...
$formatter = HTML::FormatText->new(leftmargin => 0, rightmargin => 50);
if (utf8::is_utf8($formatter->format($tree))) {
print " Is UTF8\n";
}
else {
print " Not UTF8\n";
}
结果当内容表明是 UTF8 时显示这是 UTF8,否则显示不是 UTF8。
我累了
opening an file with ">" and ">:utf8"
binmode(MYFILE, ":utf8");
encode("utf8", $string); (where string is the output of formatter->format(tree))
但似乎没有任何工作正常。
有没有专家知道我错过了什么?
提前致谢!
【问题讨论】:
标签: html perl encoding utf-8 character-encoding