我使用 PHP html_simple_dom。
目标站点使用 UTF-8。我的 php 以及流上下文都设置为使用 UTF 8。
一个元素(我通过浏览器检查)的 innerHTML 为"AAA ' BBB",至少在使用我的 firefox 和 chrome 浏览器进行渲染时是这样。
但是,我的 PHP 脚本总是将该字符串作为"AAA ' BBB". 我可以使用 htmlspecialchars_decode($string, 1) 来解决这个问题,但我真的很想知道为什么 PHP 脚本,或者更确切地说是网站在使用我的 PHP 访问它时首先(“错误地)编码字符串,这是明确的设置为 UTF
header('Content-Type: text/html; charset=utf-8');
define("CONTEXT", stream_context_create(
array(
"http" =>
array(
"header" => 'Content-Type: text/html; charset=utf-8'
// also tried 'header' => 'Accept-Charset: UTF-8'
)
)
)
);
目标站点读取 UTF-8 - http://mtggoldfish.com.cutercounter.com/
$html = file_get_html($url, false, CONTEXT);
// do things, blurts out every "'" as encoded '
红颜莎娜