Преобразование из HTML в XHTML изменяет символ евро, предотвращая правильный синтаксический анализ XML

0

Я извлекаю информацию из файла HTML, анализируя ее с помощью SAX в Java. Программа синтаксического анализа была предоставлена мне, она уже использовала SAX, поэтому я хотел бы сохранить ее таким образом. Я делаю следующее:

  • Я получаю HTML файл с веб-сайта
  • превратить его в действительный XML с помощью библиотеки JTidy. Однако эта библиотека преобразует все символы € в "â", "---", я получаю fileXHTML
  • Я передаю файл XHTML в библиотеку разбора, поэтому я могу извлечь нужные данные (написал обработчики, функцию startElement(), characters() и endElement().

Проблема: с этой новой строкой для знака euro, библиотека разбора не будет работать. Я получаю сообщение: "объект acirc был указан, но не был объявлен"

Я просто хочу, чтобы мой знак евро не был проблемой. Как мне сортировать свою вещь?

Всем спасибо,

Теги:
parsing
sax
euro

2 ответа

1

Проблема, с которой вы сталкиваетесь, является одной из кодировок.

Некоторый инструмент, где-то в вашем конвейере, сбрасывает кодировку, а затем эта ошибка переносится вперед, создавая â в вашем выходе.

По внешнему виду на веб-сайте используется UTF-8 (как и должно быть), но кодировка либо неправильно распознана, либо объявление игнорируется.

Является ли это одним из инструментов вашей инструментальной цепочки, который вызывает эту проблему, или если он неправильно использует инструменты, не совсем ясен.

  • 0
    ОК, спасибо за совет по кодированию. Как я могу проверить, если это проблема в моем наборе инструментов, например? В моем файле HTML у меня есть следующий тег div в моем теле: <div id = "ad"> <? Xml version = "1.0" encoding = "UTF-8"?> <A href = "" title = "" > blabla </a> </ div> Это нормально? когда я проверяю HTML как XML, валидатор выдает ошибку о том, что эта строка находится в середине документа.
  • 1
    @Myna: Ну, похоже, мы нашли виновника: исходный код HTML пуст.
Показать ещё 3 комментария
0

Используйте номер HTML вместо фактического символа евро &#128;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню