JoliTypo\Fixer::fixContentEncoding PHP Method

fixContentEncoding() private method

Convert the content encoding properly and add Content-Type meta if HTML document.
See also: http://php.net/manual/en/domdocument.loadhtml.php#91513
See also: https://github.com/jolicode/JoliTypo/issues/7
private fixContentEncoding ( $content ) : string
$content
return string
    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;
    }