private function fixContentEncoding($content) { if (!empty($content)) { // Little hack to force UTF-8 if (strpos($content, '<?xml encoding') === false) { $hack = strpos($content, '<body') === false ? '<?xml encoding="UTF-8"><body>' : '<?xml encoding="UTF-8">'; $content = $hack . $content; } $encoding = mb_detect_encoding($content); $headPos = mb_strpos($content, '<head>'); // Add a meta to the <head> section if (false !== $headPos) { $headPos += 6; $content = mb_substr($content, 0, $headPos) . '<meta http-equiv="Content-Type" content="text/html; charset=' . $encoding . '">' . mb_substr($content, $headPos); } $content = mb_convert_encoding($content, 'HTML-ENTITIES', $encoding); } return $content; }