我正在使用cURL在不同页面上下载内容。其中一些返回奇怪的字符,如 。我究竟做错了什么?在下面发布我的代码:
curl_setopt($curl_handle, CURLOPT_URL, 'http://www.centernail.se/');
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_handle, CURLOPT_HEADER, false);
curl_setopt($curl_handle, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl_handle, CURLOPT_ENCODING , '');
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.165 Safari/535.19');
curl_setopt($curl_handle, CURLOPT_COOKIEJAR, '/tmp/cookies.txt');
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl_handle, CURLOPT_TIMEOUT, 20);
curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, false);
答案 0 :(得分:2)
这意味着您没有处理编码。使用特定编码对页面进行编码。您或您正在输出的浏览器或您正在查看下载页面的任何内容都是使用特定编码对其进行解释。如果两者不匹配,则会得到错误解释的字符。就这么简单。
您正在决定使用哪种编码来解释数据。您需要确保输出的数据与该编码匹配。最好是使用UTF-8,并检查页面的HTTP标头或HTML元标题(按此顺序)以确定它所在的编码,然后将其转换为UTF-8(如果它是其他的话。) >
请参阅What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text和Handling Unicode Front To Back In A Web App。
答案 1 :(得分:0)
转换结果的编码或更改输出的编码