- sprintf: documentation ( source)
<?php
$html = '<p>àâäçß</p>';
$wrapper = '<html><head><meta charset="utf-8"/></head><body>%s</body></html>';
$dom = new DOMDocument;
$dom->loadHTML(sprintf($wrapper, $html));
$result = '';
$childNodes = $dom->getElementsByTagName('body')->item(0)->childNodes;
foreach ( $childNodes as $childNode ) {
$result .= $dom->saveHTML($childNode);
}
echo $result;