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