我有一个资源(一个静态的html页面),我想用来测试。但是,当我得到静态页面时,它会附带一些字符编码。我尝试使用StringEscapeUtils类,但它不起作用。 我的功能:
private HtmlPage getStaticPage() throws IOException, ClassNotFoundException {
final Reader reader = new InputStreamReader(this.getClass().getResourceAsStream("/" + "testPage" + ".html"), "UTF-8");
final StringWebResponse response = new StringWebResponse(StringEscapeUtils.unescapeHtml4(IOUtils.toString(reader)), StandardCharsets.UTF_8, new URL(URL_PAGE));
return HTMLParser.parseHtml(response, WebClientFactory.getInstance().getCurrentWindow());
}
import org.apache.commons.lang3.StringEscapeUtils;
答案 0 :(得分:0)
final Reader reader = new InputStreamReader(this.getClass().getResourceAsStream("/" + "testPage" + ".html"), "UTF-8");
对于读者使用文件的编码(从你的评论我猜这是你的情况下的Windows-1252)。 然后将文件读入字符串(例如使用commons.io)。
然后你可以像这样处理它
final StringWebResponse tmpResponse = new StringWebResponse(anHtmlCode,
new URL("http://www.wetator.org/test.html"));
final WebClient tmpWebClient = new WebClient(aBrowserVersion);
try {
final HtmlPage tmpPage = HTMLParser.parseHtml(tmpResponse, tmpWebClient.getCurrentWindow());
return tmpPage;
} finally {
tmpWebClient.close();
}
如果您仍然遇到问题,请从您的页面中制作一个简单的样本,以便显示您的问题并将其与您的代码一起上传到此处。