Java HtmlCleaner:不处理扩展ascii字符

Java HtmlCleaner:不处理扩展ascii字符,java,ascii,extended-ascii,htmlcleaner,Java,Ascii,Extended Ascii,Htmlcleaner,我正在使用HTMLCleaner清理一个HTML文件,该文件包含诸如“€”(ascii十进制128)、“TM”(ascii十进制153)等字符,即ascii扩展表中的字符 HTMLCleaner无法处理这些字符,并将其替换为字符“?”(ascii十进制63) 为了处理这些字符,我可以在HTMLCleaner中设置任何标志吗 提前谢谢 编辑: 变量“encoding”是“iso-8859-1”,就像源文件编码一样 try { System.out.print("Parsin

我正在使用HTMLCleaner清理一个HTML文件,该文件包含诸如“€”(ascii十进制128)、“TM”(ascii十进制153)等字符,即ascii扩展表中的字符

HTMLCleaner无法处理这些字符,并将其替换为字符“?”(ascii十进制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);
应替换为:

TagNode tagNode = new HtmlCleaner(props).clean(url, encoding);
其中“encoding”是源url字符集的字符串表示形式


谢谢大家!

您是否尝试设置
字符集

可能的重复:是的,这是一个类似的问题,我检查了这个问题,但我没有意识到这是一个编码问题。谢谢你,你真的帮了我。是的,正如你在上面看到的。生成的HTML文件与源文件具有相同的编码。我只在以下位置设置字符集:
new PrettyXmlSerializer(props).writeToFile(tagNode,fileStr,encoding)TagNode TagNode=newhtmlcleaner(props).clean(url,编码)。现在可以了,谢谢。