www ページをダウンロードするスクリプトがあり、テキストを抽出して、統一されたエンコーディング (UTF8 で問題ありません) で保存したいと考えています。ダウンロード (UserAgent)、解析 (TreeBuilder)、およびテキスト抽出は問題ないように見えますが、正しく保存されているかどうかはわかりません。
たとえば、notepad ++ で出力ファイルを開くと、それらは表示されません。元の HTML ビューは、テキスト エディターで検索します。
HTML ファイルには通常、charset=windows-1256 または charset=UTF-8 があります。
したがって、UTF8 を機能させることができるかどうかは、単なる再コーディングの問題であると考えました。HTMLファイルがディスクに保存されていると仮定して、私が試したことのいくつかを次に示します。
my $tree = HTML::TreeBuilder->new;
$tree->parse_file("$inhtml");
$tree->dump;
テキスト エディターでエンコーディングを utf8 に切り替えた後にのみ、.txt ファイルに STDOUT ビュー用に正しくキャプチャされたダンプからの出力…</p>
$formatter = HTML::FormatText->new(leftmargin => 0, rightmargin => 50);
if (utf8::is_utf8($formatter->format($tree))) {
print " Is UTF8\n";
}
else {
print " Not UTF8\n";
}
結果 コンテンツがそうであると示している場合は IS UTF8 であり、それ以外の場合は Not UTF8 であることを示します。
疲れた
opening an file with ">" and ">:utf8"
binmode(MYFILE, ":utf8");
encode("utf8", $string); (where string is the output of formatter->format(tree))
しかし、何も正しく動作していないようです。
そこにいる専門家は、私が欠けているものを知っていますか?
前もって感謝します!