У меня есть какая-то проблема здесь,PHP DomDocument, Unicode проблемы
$source = "<html><body><h1>“</h1></body></html>";
$dom = new DOMDocument();
$dom->loadHTML($source);
echo $dom->saveHTML();
Выход:
< DOCTYPE HTML PUBLIC " - // W3C // DTD HTML 4.0 Transitional // EN " " HTTP : //www.w3.org/TR/REC-html40/loose.dtd " > < <HTML> > тело <h1> & ldquo; </h1 > </тело > </html >
Хорошо, эта работа правильно. Но если я хочу, чтобы извлечь узлы, как этот
$source = "<html><body><h1>“</h1></body></html>";
$dom = new DOMDocument();
$dom->loadHTML($source);
$h1 = $dom->getElementsByTagName('h1');
echo $dom->saveHTML($h1->item(0));
Это выходной непризнанного текст.
<h1> â € œ </h1 >
Кто знает, как решить эту проблему?
Все эти функции DOM возвращают закодированные строки UTF-8, лучше проверьте руководство. Нечего решать, а просто правильно отображать, например. сообщите своему браузеру, правильно настроив заголовки ответов или используя меню в своем браузере, где вы можете указать кодировку кодировки, если вы не знаете, как автоматически указывать браузер. См. Http://www.webstandards.org/learn/articles/askw3c/dec2002/ – hakre