Я пытаюсь разобрать HTML-страницу с помощью Xpath с JAVA. Вот мой код:Java - Проблемы с преобразованием специальных символов HTML
/** Cleaning the html file */
/** the 'doc' variable is a String containing the whole html file */
TagNode tagNode = new HtmlCleaner().clean(doc);
Document doc2 = new DomSerializer(new CleanerProperties()).createDOM(tagNode);
XPath xpath = XPathFactory.newInstance().newXPath();
/** xpath request */
Object dates_experience = xpath.evaluate("/html/body/div[3]/div/div/div[2]/div/div/div[2]/div[4]/div/div[3]/h4/span[2]", doc2, XPathConstants.NODESET);
NodeList nodes = (NodeList) dates_experience;
String s;
for (int i = 0; i < nodes.getLength(); i++) {
s = org.apache.commons.lang3.StringEscapeUtils.unescapeHtml4(nodes.item(i).getTextContent());
System.out.println(s);
}
Я думаю, что у меня есть probems с stringEscapeUtils или с HtmlCleaner, так как на выходе, я вижу это:
�
вместо этих символов:
é, è, ', à, û, ...etc
Например, у меня есть этот вход:
décembre 2010 - décembre 2010)
février 2010 - juin 2010)
juillet 2009 - septembre 2009)
juin 2009 - juin 2009)
juillet 2008 - août 2008)
Моя программа производит этот вывод:
d�cembre 2010 - d�cembre 2010)
f�vrier 2010 - juin 2010)
juillet 2009 - septembre 2009)
juin 2009 - juin 2009)
juillet 2008 - ao�t 2008)
могли бы вы помочь мне решить эту проблему, пожалуйста?
Спасибо.
кажется, что вы не должны бежать или unescpae их, до тех пор, как вы уважаете набор символов данных. –
Правильно ли загружена строка «doc», действительная кодировка? Строка doc должна быть загружена кодировкой документа, как определено в HTML-файле . – Toilal
Да, я загрузил его в UTF-8, как определено в HTML-файле –