1

检索 css 文件的内容:(http://gizmodo.com/assets/stylesheets/app-ecbc6044c59319aab4c2a1e31380ef56.css

检测到编码为mb_detect_encoding... 表示 UTF-8。

在浏览器中查看页面,看起来不错(可读),并声明@charset "UTF-8";

试图输出字符串,得到垃圾。试图将其保存到文件中,得到了垃圾。

尝试将编码转换为 ASCII、ISO-8859-1 和 HTML-ENTITIES。没运气。

这里有什么想法如何确定为什么这个字符串是垃圾,以及如何修复它?

4

2 回答 2

5

Content-Encoding您尝试获取的页面是gzip. 在使用它之前,您需要解压缩它。

注意内容编码

我刚刚尝试了以下方法,效果很好:

echo gzdecode(file_get_contents($your_url));
于 2013-07-17T20:56:44.790 回答
5
$url = 'http://gizmodo.com/assets/stylesheets/app-ecbc6044c59319aab4c2a1e31380ef56.css';

$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch,CURLOPT_ENCODING , "gzip");
$data = curl_exec($ch);
curl_close($ch);
echo $data;

重要的线路是

curl_setopt($ch,CURLOPT_ENCODING , "gzip");
于 2013-07-17T20:57:11.510 回答