私は他の誰かの大規模なプロジェクトの一部を拾い上げて、間違いを正そうとしています。問題は、正しい方法がわからないということです。
だから、私はたくさんのHTMLページをカーリングし、それを次のような簡単なコマンドでファイルに書き込んでいます。
$src = `curl http://google.com`;
open FILE, ">output.html";
print FILE $src;
close FILE;
今、私はそれらをUTF-8として保存したかったのです。それは何として保存されますか?次に、同じ基本的な「open」コマンドを使用してhtmlファイルを読み取り、正規表現呼び出しでhtmlを解析し、文字列連結を使用して大きな文字列を作成し、それをXMLファイルに書き込みます(上記と同じコードを使用)。代わりにXML::Writerを使用し始めましたが、エンコードが不正確なファイルを調べて修正する必要があります。
したがって、HTMLはもうありませんが、適切な文字を表示する必要のあるXMLはまだあります。次に例を示します:http://filevo.com/wkkixmebxlmh.html
主な問題は、問題の文字を検出して、エディターに正しく表示される「\x{2019}」に置き換えることです。しかし、実際に野生のキャラクターをキャプチャするための正規表現を理解することはできません。
アップデート:
上記のFilevoにアップロードしたXMLファイルにあるALT-0146文字をまだ検出できません。UTF-8で開いて、/ \ x {2019} /、/ chr(0x2019)/を検索しましたが、/'/だけを検索しました。