我正在使用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'
)
)
)
);
targetsite读取UTF-8-http://mtggoldfish.com.cutercounter.com/
$ html = file_get_html($ url,false,CONTEXT);
// do things, blurts out every "'" as encoded '
答案 0 :(得分:1)
浏览器检查器进行了一些转换,以使其具有人类可读性。
创建一个仅包含AAA ' BBB
主体的简单HTML,您将在检查器中看到AAA ' BBB
。
如果您真的想查看页面的内容,请查看源代码(file_get_html
得到的源代码)