Символ «Â» появляется вместо «& nbsp;»

я нашелэта тема который описывает мою проблему довольно хорошо иэтот Ответ точно описывает мою проблему.

Символ неразрывного пробела - байт 0xA0 - ISO-8859-1; при кодировании в UTF-8 это будет 0xC2,0xA0, что, если вы (неправильно) рассматриваете его как ISO-8859-1, выглядит как"Â ", Это включает в себя ...

Однако мне удалось отследить мою проблему до функции, которую я использую, чтобы обернуть теги изображения в div.

function img_format($str)
{
    $doc = new DOMDocument();
    @$doc->loadHTML($str);     // <-- Bonus points for the explaination of the @

    // $tags object
    $tags = $doc->getElementsByTagName('img');

    foreach ($tags as $tag) {

        $div = $doc->createElement('div');
        $div->setAttribute('class','inner-copy');
        $tag->parentNode->insertBefore($div, $tag);
        $div->appendChild($tag);

        $tag->setAttribute('class', 'inner-img');
    }

    $str = $doc->saveHTML();

    return $str;
}

Проще говоря, как я могу исправить эту проблему в этой функции?

Я понимаю, используя;

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

Я исправлю эту проблему, но есть что-то, что я пропускаю в самой функции.

Я пробовал;

$dom->validateOnParse = true;

Но безрезультатно. (Я не совсем знаю, что это делает в любом случае)

Ответы на вопрос(1)

Ваш ответ на вопрос