2011-08-19 39 views
2

我有一些必須處理的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次。

  • 第一次,它帶來了文本和圖像,如預期。

  • 第二次,它帶來了預期的修改後的圖像。但文字被損壞,像這樣:áƒáƒ‘გáƒ「áƒ」ვზთ

有什麼辦法解決這個問題嗎?

+0

我的編輯器也無法識別這些字符。你確定這些是UTF-8嗎? –

+0

那些是格魯吉亞的信件。如果你想要的話,你可以試試俄羅斯信件。結果是一樣的。或者甚至更好的在這裏寫下你認爲可以的utf8字母,我會給他們一個嘗試。 – David

+0

我嘗試了繁體中文(檢測 - 測試)這兩個工作。我也測試過希臘語(δοκιμή - test),也適用。 –

回答

5

夥計們我找到了解決方案!!!!!!!!!! Huraaa !!!! :)))) 對於那些誰在將來面對這個問題這裏是代碼

$article_header = mb_convert_encoding($article_header, 'HTML-ENTITIES', "UTF-8"); 

這必須loadHTML之前進行,一切工作正常!!!!

+0

很酷................. –

+0

Thx兄弟,經過1小時的研究剛剛找到解決方案... – artur99

相關問題