次のコードを実行します。
$page = '<p>Ä</p>';
$DOM = new DOMDocument;
$DOM->loadHTML($page);
echo 'source:'.$page;
echo 'dom: '.$DOM->getElementsByTagName('p')->item (0)->textContent;
そして、次を出力します。
ソース: Ä
ドム: ×
テキストが DOMDocument を介して送信されると、エンコーディングが壊れる理由がわかりません。