Pilsen
Новичок
domdocument при разборе utf-8 неправильно парсит теги (кодировка)
Мы обрабатываем базу сайтов, вытягиваем, в частности, тег title.
Столкнулся с весьма странной проблемой. Проявляется только на некоторых сайтах.
Небольшой процент сайтов в utf-8 кодировке при загрузке страницы через
ПРАВИЛЬНО определяет кодировку в строках
но неправильно выдает данные через getElementsByTagName
На примере разбора главной страницы http://www.marketgid.com/ я получаю в строке $title набор символов, не в utf-8.
Другими страница - контент страницы в utf-8, DOM определяет кодировку из meta тегов правильно, но выдает части страницы при парсинге неправильно.
Есть еще ряд сайтов, на которых такое получается, к примеру, на китайском http://www.dianping.com/citylist
хотя тысячи других сайтов в utf-8, на китайском и многих других языках, парсятся нормально.
Кто-нибудь сталкивался с таким? Как это лечить?
Библиотеку менять не предлагайте, нам от неё не только тег title нужен . Нужно более-менее промышленное решение.
Мы обрабатываем базу сайтов, вытягиваем, в частности, тег title.
Столкнулся с весьма странной проблемой. Проявляется только на некоторых сайтах.
Небольшой процент сайтов в utf-8 кодировке при загрузке страницы через
PHP:
// fetching
$url = 'http://www.marketgid.com/';
$request = new HTTP_Request2($url);
$request->setHeader('User-Agent', 'Mozilla/Firefox');
$response = $request->send();
$content = $response->getBody();
// fetching
// here comes a trouble
$dom = new domDocument();
@$dom->loadHTML($content);
$dom->preserveWhiteSpace = false;
print $dom->encoding."<br>\n";
print $dom->actualEncoding."<br>\n";
$title = @$dom->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;
print $title."\n";
// here comes a trouble
PHP:
print $dom->encoding."<br>\n";
print $dom->actualEncoding."<br>\n";
На примере разбора главной страницы http://www.marketgid.com/ я получаю в строке $title набор символов, не в utf-8.
Другими страница - контент страницы в utf-8, DOM определяет кодировку из meta тегов правильно, но выдает части страницы при парсинге неправильно.
Есть еще ряд сайтов, на которых такое получается, к примеру, на китайском http://www.dianping.com/citylist
хотя тысячи других сайтов в utf-8, на китайском и многих других языках, парсятся нормально.
Кто-нибудь сталкивался с таким? Как это лечить?
Библиотеку менять не предлагайте, нам от неё не только тег title нужен . Нужно более-менее промышленное решение.