Java HtmlCleaner:不处理扩展ascii字符
我正在使用HTMLCleaner清理一个HTML文件,该文件包含诸如“€”(ascii十进制128)、“TM”(ascii十进制153)等字符,即ascii扩展表中的字符 HTMLCleaner无法处理这些字符,并将其替换为字符“?”(ascii十进制63) 为了处理这些字符,我可以在HTMLCleaner中设置任何标志吗 提前谢谢 编辑: 变量“encoding”是“iso-8859-1”,就像源文件编码一样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
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,编码)代码>。现在可以了,谢谢。