Sesquialtera: Encoding mismatch mit DOMDocument::saveHTML

Beitrag lesen

Hallo,
ich habe folgendes hartnäckige Problem:

aus einem HTML file "content.html" soll der Inhalt (innerHTML) eines Tags ausgelesen werden. Das ganze soll im PHP-File "main.php" vor sich gehen. Ich habe dazu die DOMDocument Class (libxml2) verwendet.

Im 'main.php' wird als das html File eufgerufen und der Dokumentbaum an libxml2 übergheben:

  
$dom->loadHTMLFile("content.html");  

Ich greife auf das gewünschte DOMElement zu und lese rekursiv alle Subelements in des neue $tmp_dom = new DOMDocument('1.0','utf-8'); ein.
Bei der Ausgabe in 'main.php' per echo $tmp_dom->saveHTML(); werden alle Umlaute in der falschen Kodierung ausgelesen und nicht richtig dargestellt.

Beide files sind als utf-8 kodiert, in der 'main.php' ist dies auch dekalariert (<meta http-equiv="content-type" content="text/html;charset=utf-8">.

Wenn ich 'content.html' mit iconv in 'latin-1' verwandle, stimmt der Output von echo $tmp_dom->saveHTML();!

Versteht DOMDocument::loadHTML/saveHTML kein UTF-8? Ich möchte nicht auf latin-1 umsteigen müssen, da ich seit langem alle Apps auf UTF-8 konvertiert habe.

Weiß jemand Abhilfe?

Vielen Dank fürs Posten!!
Franz