XML-Analysefehler: nicht wohlgeformter Ort:https://awstats.example.org/reports/www.example.org/2011/06/awstats.www.example.org.xmlZeilennummer 603, Spalte 34:
<tr><td class="aws">- Toile du Qu\uffffbec</td><td>363</td><td>363</td></tr>
Das Obige ist nicht ganz die Darstellung, die aufgrund der Markdown-Merkwürdigkeit erfolgt; stattdessen erhalten Sie die Unicode-Failbox von FFFF. Ich bin mir nicht sicher, warum das ein Problem ist, da vim es problemlos rendert und das Dokument selbst sagt
<?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">
Gibt es in awstats eine Einstellung, die ich aktivieren muss, um nicht-US-amerikanische Zeichen richtig zu verarbeiten?
Antwort1
Sie können awstats mit der folgenden Konfiguration auf 4.01 Transitional umstellen:
(aus 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
Antwort2
Dieser DOCTYPE weist den Browser an, XHTML Strict zu verwenden. XHTML schreibt vor, dass bei Fehlern im Dokument ein Fehler angezeigt werden soll, anstatt die Anzeige ordnungsgemäß zu verschlechtern. Dies ist einer der Hauptgründe, warum niemand wirklich XHTML (Strict) verwendet. XHTML ist eine Grammatik für ein XML-Dokument. Daher ist jedes gültige XHTML-Dokument auch ein gültiges XML-Dokument. Die XML-Spezifikation erlaubt die Unicode-Ersatzblöcke 0xFFFE und 0xFFFF nicht. SieheHier.
Ich weiß nicht, ob Sie AWStats irgendwie reparieren können. Als Test könnten Sie versuchen, den DOCTYPE in etwas anderes als XHTML Strict zu ändern. Versuchen Sie es mit HTML 4.01 oder HTML5. Dann zeigt der Browser möglicherweise trotzdem etwas an, anstatt nur einen Fehler auszugeben. Versuchen Sie, das Zeichen 0xFFFF durch eine Zeichenentitätsreferenz zu ersetzen. Jedenfalls frage ich mich, warum Sie dort 0xFFFF haben. Es sieht so aus, als ob das ein akzentuiertes e sein soll, was sicherlich nicht 0xFFFF ist.