HTMLCleanerを使用して、「€」(ascii decimal 128)、「TM」(ascii decimal 153)などの文字を含むHTMLファイルをクリーンアップしています。つまり、ASCII拡張テーブルの文字です。
HTMLCleanerはこれらの文字を処理できず、文字「?」に置き換えます。(ASCII 10進数63)。
これらの文字を処理するためにHTMLCleanerで設定できるフラグはありますか?
前もって感謝します。
編集: 変数「encoding」は、ソースファイルのエンコーディングと同じように「iso-8859-1」です。
try {
System.out.print("Parsing and cleaning:" + fileStr);
URL url = new File(this.fileStr).toURI().toURL();
// create an instance of HtmlCleaner
HtmlCleaner cleaner = new HtmlCleaner();
// default properties
CleanerProperties props = cleaner.getProperties();
// do parsing
TagNode tagNode = new HtmlCleaner(props).clean(url);
// serialize to XML file
new PrettyXmlSerializer(props).writeToFile(tagNode, fileStr,
encoding);
System.out.println("Output: " + fileStr);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
私はこれを理解しました。この線:
TagNode tagNode = new HtmlCleaner(props).clean(url);
Shoubeは次のように置き換えられます:
TagNode tagNode = new HtmlCleaner(props).clean(url, encoding);
ここで、「encoding」は、ソースURLの文字セットの文字列表現です。
ありがとうございました!