Hallo,
<?php
if (preg_match('|application/xhtml+xml(?!\s*;\s*q=0)|', $_SERVER['HTTP_ACCEPT'])) {
header('Content-Type: application/xhtml+xml; charset=iso-8859-1');
} else {
header('Content-Type: text/html; charset=iso-8859-1');
}
?>
Außerhalb einer HTTP-Umgebung werden Dokumente ohne XML-Deklaration mit passender encoding-Angabe im Fall application/xhtml+xml aufgrund der ISO-8859-1-kodierten Zeichen fehlinterpretiert. Wenn application/xhtml+xml, dann auch eine XML-Deklaration; das bedingte Einfügen sollte an gleicher Stelle möglich sein.
Den Fall text/html und fehlende Kodierungsangabe via meta-Element hatten wir bereits besprochen, ich halte das auch nicht für hinreichend sicher und würde es nicht empfehlen.
In beiden Fällen verlässt man sich ausschließlich auf das Herumraten und die Fehlerkorrektur der Browser.
Mathias