Здравствуйте!
Столкнулся с проблемой кодировки при использовании PHP Simple HTML DOM Parser.
Вытаскивают html-текст из абзацев при помощи функции innertext(). В тексте могут быть тэги,
например
текст1 или вообще
ссылка куда-то
Ну а теперь к сути, вот код:
foreach ($html->find('div[class="text"] p') as $text) {
$fulltext .= iconv("Windows-1251", "UTF-8", $text->innertext());
}
Помимо этого на странице много чего еще вытаскивается через plaintext.
Проблема в следующем:
Страница, которую я парсю, имеет кодировку Windows-1251, мой код (index.php) и сам
simple_html_dom.php в кодировке UTF-8.То, что вытаскивается через plaintext, отображается нормально, а вот innertext() похоже вытаскивает информацию в кодировке страницы, то есть, в моем случае - Windows-1251.
ОК, делаем конвертацию с помощью iconv и, по идее, все должно быть отлично. Большая часть текста отображается корректно в кодировке UTF-8, однако засада в том, что текст, заключенный в тэги почему то отображается кракозябрами. То ли на него не срабатывает iconv, то ли еще что, но как победить эту штуку, я не понял. Причем если сделать кодировку своей страницы в Windows-1251, это все равно не поможет.
Есть идеи?