Ошибка анализа XML: неправильно сформирован Расположение:https://awstats.example.org/reports/www.example.org/2011/06/awstats.www.example.org.xmlНомер строки 603, столбец 34:
<tr><td class="aws">- Toile du Qu\uffffbec</td><td>363</td><td>363</td></tr>
Выше не совсем то, как это отображается благодаря странности разметки; вместо этого вы получаете юникодный фейлбокс FFFF. Я не уверен, почему это проблема, так как vim отображает это нормально, и сам документ говорит
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Есть ли настройка в awstats, которую нужно включить для правильной обработки неамериканских символов?
решение1
Вы можете переключить awstats на использование версии 4.01 Transitional с помощью следующей конфигурации:
(из awstats.model.conf)
# If you prefer having the report output pages be built as XML compliant pages
# instead of simple HTML pages, you can set this to 'xhtml' (May not work
# properly with old browsers).
# Change : Effective immediatly
# Possible values: html or xhtml
# Default: html
#
BuildReportFormat=html
решение2
Этот DOCTYPE предписывает браузеру использовать XHTML Strict. XHTML предписывает, что если в документе есть какие-либо ошибки, то нужно показывать ошибку вместо того, чтобы изящно ее деградировать. Это одна из основных причин, по которой никто на самом деле не использует XHTML (Strict). XHTML — это грамматика для XML-документа. Таким образом, любой допустимый XHTML-документ также является допустимым XML-документом. Спецификация XML не допускает суррогатные блоки Unicode 0xFFFE и 0xFFFF. Смотритездесь.
Я не знаю, можно ли что-то сделать, чтобы исправить AWStats. В качестве теста вы можете попробовать изменить DOCTYPE на что-то другое, кроме XHTML Strict. Попробуйте HTML 4.01 или HTML5. Тогда вместо того, чтобы выдавать только ошибку, браузер все равно может что-то показать. Попробуйте заменить символ 0xFFFF ссылкой на сущность символа. В любом случае, мне интересно, почему у вас там 0xFFFF. Похоже, что это должно быть ударение e, которое определенно не 0xFFFF.