场景:
项目中利用htmlparser抽取网页中的超链接,代码如下:
URL url = new URL(pageUrl);
URLConnection conn = url.openConnection();
parser = new Parser(conn);
list = parser.parse(new TagNameFilter("a"));
传参数pageUrl="http://tv.sohu.com/movie/"运行时,报错:
org.htmlparser.util.EncodingChangeException: character mismatch。
解决办法:
修改htmlparser.jar中的org.htmlparser.tags.MetaTag.java,修改如下:
public void doSemanticAction() throws ParserException {
String httpEquiv;
String charset;
httpEquiv = getHttpEquiv();
if ("Content-Type".equalsIgnoreCase(httpEquiv)) {
if (Page.DEFAULT_CHARSET == getPage().getEncoding()) {
charset = getPage().getCharset(getAttribute("CONTENT"));
getPage().setEncoding(charset);
}
}
}
重新运行,问题解决。