PHP curl返回奇怪的字符

use*_*047 9 php session encoding curl prestashop

我正在尝试使用Prestashop实例的图像产品更新页面.

我使用prestashop Web服务获取信息.问题是当我加载页面时,它会询问prestashop的令牌/密钥,但是我想要使用Url和我从CURL传递的密钥保存登录会话,而不是每次都输入密钥.然而输出 curl_exec 是一些奇怪的字符,如??#B??R??$3br?

以下是保存会话的功能:

 function saveSession($url, $key){

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_USERPWD, $key.':');
    curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate,sdch');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
 }
Run Code Online (Sandbox Code Playgroud)

我不知道问题是编码,标题还是有任何其他解决方案!?

Sab*_*san 27

那些关于响应的奇怪数据是你的curl无法检测到的压缩内容.

替换这个:

curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate,sdch');
Run Code Online (Sandbox Code Playgroud)

附:

curl_setopt($ch, CURLOPT_ENCODING, '');
Run Code Online (Sandbox Code Playgroud)

空编码意味着处理任何类型的编码.它应该解决你的问题.