PHP返回奇怪字符

PHP返回奇怪字符,php,session,curl,encoding,prestashop,Php,Session,Curl,Encoding,Prestashop,我正在尝试使用Prestashop实例的图像产品更新页面 我使用prestashop web服务获取信息。 问题是,当我加载页面时,它会询问我prestashop的令牌/密钥,但我希望使用Url和通过CURL传递的密钥保存登录会话,而不是每次输入密钥。 然而,curl\u exec的输出是一些奇怪的字符,如��#B��R��$3br� 以下是保存会话的功能: function saveSession($url, $key){ $ch = curl_init(); curl_s

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

我使用prestashop web服务获取信息。 问题是,当我加载页面时,它会询问我prestashop的令牌/密钥,但我希望使用Url和通过CURL传递的密钥保存登录会话,而不是每次输入密钥。 然而,
curl\u 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;
 }

我不知道问题是在于编码、头还是有其他解决方案

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

替换此项:

curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate,sdch');
与:


空编码意味着处理任何类型的编码。它应该可以解决您的问题。

尝试将该行更改为:
curl\u setopt($x,CURLOPT\u HTTPHEADER,array('Content-Type:application/x-www-form-urlencoded;charset=UTF-8')
。设置curl_setopt($ch,CURLOPT_ENCODING');修复了我遇到的一个非常奇怪的编码问题,其中curl输出看起来像是插入了额外的字符,这使得检索到的XML无效。超级感谢您的回答。它对我有用。但是见鬼,你给了我们答案。你能不能也提到为什么会发生这样的错误?我们如何找到原因?“curl无法检测到的压缩内容”这是什么意思?你能再详细解释一下吗?
curl_setopt($ch, CURLOPT_ENCODING, '');