在PHP中使用DOM对象时出现UTF8问题

Dav*_*vid 2 php dom

我有一些必须处理的UTF8文本+图像数据.

我的整个代码都在一个文件中; 这是完整的代码:

<?php
echo "<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head><meta http-equiv='Content-Type' content='text/html; charset=utf-8' /></head><body>";

$article_header="????????<img src='some_url/img/15.jpg' alt=''>????????";
echo "1".$article_header."<br>";
$doc = new DOMDocument();
$doc->loadHTML($article_header);
$imgs = $doc->getElementsByTagName('img');
foreach ($imgs as $img) {
 if(!$img->getAttribute('class')){
$src = $img->getAttribute('src');
$newSRC = str_replace('/img/', '/mini/', $src);
$img->setAttribute('src', $newSRC);
$img->removeAttribute('width'); 
$img->removeAttribute('height');
$article_header = $doc->saveHTML();
            }
                        }
echo "2".$article_header."<br>";
echo "</body></html>";
?>
Run Code Online (Sandbox Code Playgroud)

如你所见,我回收数据2次.

  • 第一次,它带来了文本和图像,如预期的那样.

  • 第二次,它带来了预期的修改后的图像.但是文本被破坏了,像这样:áƒáƒ‘გდევზთ

有什么方法可以解决这个问题吗?

Dav*_*vid 5

伙计们我找到了解决方案!!!!!!!!!! Huraaa !!!! :))))对于那些将来会面临这个问题的人来说,这里是代码

$article_header = mb_convert_encoding($article_header, 'HTML-ENTITIES', "UTF-8");
Run Code Online (Sandbox Code Playgroud)

这必须在loadHTML之前完成,一切正常!!!!