0

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の文字セットの文字列表現です。

ありがとうございました!

4

1 に答える 1

1

を設定してみましたcharsetか?

于 2012-05-16T16:43:14.363 に答える