Я использую HTMLCleaner для очистки HTML-файла, который содержит такие символы, как '€' (десятичный ascii 128), 'TM' (десятичный ascii 153) и т. Д. То есть символы из расширенной таблицы ASCII .
HTMLCleaner не может обрабатывать эти символы и заменяет их символом '?' (десятичный ascii 63).
Есть ли какой-нибудь флаг, который я могу установить в HTMLCleaner для обработки этих символов?
Заранее спасибо.
РЕДАКТИРОВАТЬ: Переменная "кодировка" - "iso-8859-1", как и кодировка исходного файла.
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);
Где «кодировка» - это строковое представление кодировки исходного URL.
Спасибо!