処理する必要があるUTF8テキスト+画像データがあります。PHPでDOMオブジェクトを操作する際のUTF8の問題
私のコード全体は1つのファイルにあります。完全なコードはここにあります:
<?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回エコーします。
初めて、テキストと画像の両方が表示されます。
2度目は、変更されたイメージを期待通りに表示します。しかし、テキストはこのように、破損:
áƒáƒ‘გდევზთ
この問題を解決する方法はありますか?
私のエディタでもこれらの文字を認識できません。これらはUTF-8であると確信していますか? –
これは、ジョージア文字です。あなたが望むなら、あなたはロシアの手紙を試すことができます。結果は同じです。それともあなたのutf8の手紙をここに書いてもいいと思います。私はそれを試してみましょう。 – David
私は伝統的な中国語(検測 - テスト)を試しましたが、両方とも動作します。私はギリシャ語(δοκιμή - test)もテストしました。 –