Я читаю в 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">€30 and under</span>
.Этот символ является символом Windows 1252 за €, но я не могу понять, как преобразовать его обратно в оригинал (то же самое для других специальных символов).
Спасибо за любые идеи о том, как объяснить или исправить это действительно странноеПоведение DOMDoc!
fj