检索了css文件的内容:(http://gizmodo.com/assets/stylesheets/app-ecbc6044c59319aab4c2a1e31380ef56.css)
使用mb_detect_encoding
检测到编码...说UTF-8。
在浏览器中查看该页面,看起来很好(可读),并声明@charset "UTF-8";
试图输出字符串,得到了垃圾。 试图将它保存到文件中,得到了垃圾。
尝试将编码转换为ASCII,ISO-8859-1和HTML-ENTITIES。没有运气。
这里有什么想法如何确定这个字符串为什么是垃圾,以及如何修复它?
答案 0 :(得分:5)
您尝试提取的网页的Content-Encoding
为gzip
。在使用之前,您需要uncompress。
我刚刚尝试了以下内容并且工作正常:
echo gzdecode(file_get_contents($your_url));
答案 1 :(得分: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");