Я хочу сделать некоторый запрос XPath в файле HTML. Вот мой код:Java - Специальные символы html
public static void main(String args[]) {
try{
/** We load the HTML file we want to parse */
BufferedReader br = new BufferedReader(new InputStreamReader (new FileInputStream("html_doyoubuzz.html"),"UTF-8"));
/** we clean HTML file */
TagNode tagNode = new HtmlCleaner().clean(br);
Document doc2 = new DomSerializer(new CleanerProperties()).createDOM(tagNode);
/******************************
* *
* XPath Requests *
* *
******************************/
XPath xpath = XPathFactory.newInstance().newXPath();
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);
}
}
catch (Exception e){//Catch exception if any
e.printStackTrace();
}
}
Мой HTML-файл кодируется в UTF-8 (как написано в мета-тег). Моя проблема - выход. Я получаю это:
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)
У вас есть какие-либо идеи, чтобы решить эту проблему?
Спасибо.
Вы уверены, что HTML-файл UTF-8? Я имею в виду, что окна по умолчанию используют свою собственную кодировку при сохранении файлов. Eclipse сам использует эту кодировку по умолчанию –
Как я могу быть уверен? Кстати, метатег указывает, что кодировка UTF-8. –
Если вы используете eclipse, а HTML-файл находится внутри вашего проекта, вы можете выбрать файл в представлении проводника и нажать alt + Enter (или щелкнуть правой кнопкой мыши и выбрать свойства). Он откроет окно, в котором вы можете проверить кодировку текста. Бета-тег - это способ, которым вы объявляете кодировку, которую собираетесь использовать, но это не заставляет ОС использовать ее. Эта ответственность за вас –