Вход cURL в DOMDocument UTF-8

Я читаю в HTML с URL-адреса, и хотя он помечен как UTF-8 в браузере, мне нужно iconv Windows-1252//IGNORE, чтобы получить правильный результат.

    $ch = curl_init();
    $timeout = 10;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $html = curl_exec($ch);
    curl_close($ch);
    $html = iconv("UTF-8", "Windows-1252//IGNORE", $html);

    echo ($html);

Вывод (длинный HTML-файл и необработанный вывод):<span class="price">€30 and under</span>

Для анализа DOMDocument я пробовал разные способы, включая принудительное использование кодировки UTF-8, но в основном

        $tmp = new DOMDocument();
       //$tmp->encoding = 'UTF-8';
       $tmp->loadHTML($html);
       echo $tmp->saveXML();

который выводит HTML как <span class="price">&#x80;30 and under</span>, Этот символ является символом Windows 1252 за €, но я не могу понять, как преобразовать его обратно в оригинал (то же самое для других специальных символов).

Спасибо за любые идеи о том, как объяснить или исправить это действительно странное поведение DOMDoc!

FJ

0 ответов

Другие вопросы по тегам