вход cURL в DOMDocument UTF-8 - PullRequest
       31

вход cURL в DOMDocument UTF-8

0 голосов
/ 17 декабря 2018

Я читаю в 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

...