我有一些必須處理的UTF8文本+圖像數據。在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>";
?>
正如你所看到的我回顯數據2次。
第一次,它帶來了文本和圖像,如預期。
第二次,它帶來了預期的修改後的圖像。但文字被損壞,像這樣:
áƒáƒ‘გáƒ「áƒ」ვზთ
有什麼辦法解決這個問題嗎?
我的編輯器也無法識別這些字符。你確定這些是UTF-8嗎? –
那些是格魯吉亞的信件。如果你想要的話,你可以試試俄羅斯信件。結果是一樣的。或者甚至更好的在這裏寫下你認爲可以的utf8字母,我會給他們一個嘗試。 – David
我嘗試了繁體中文(檢測 - 測試)這兩個工作。我也測試過希臘語(δοκιμή - test),也適用。 –