我要访问的网页带有<meta charset="utf-8">
标签。我正在使用以下代码访问HTML。
$options = array(
'http'=>array(
'method'=>"GET",
'header' => implode("\r\n", array(
"User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36",
"Content-type: text/html",
"Accept-Language: en-us,en;q=0.5",
"Accept-Charset: utf-8;q=0.7,*;q=0.7"
))
)
);
$context = stream_context_create($options);
$webpage_html = file_get_contents($webpage_url, false, $context);
相同网页的HTML输出有时会作为垃圾输出。其他时间它也可以正常工作,而无需更改代码。这是示例垃圾输出:
Xi�۸��_!�R2Y�PҬ�]��|��r썏�lM&S /�������5c'�]K@��h����d2������L�ǟ^�N���"��,(DsW�i�d��3�����53�I^�|��i�~�~�o�ʟ|
如何确保每次都能获得正确的HTML?编码有问题吗?
更新
每次都会在浏览器中成功打开网页。我还从浏览器复制了请求标头,但问题仍然存在。如果有帮助,我访问的网站是亚马逊。