使用curl对来自ZF2API调用的奇怪编码进行响应

使用curl对来自ZF2API调用的奇怪编码进行响应,curl,encoding,zend-framework2,Curl,Encoding,Zend Framework2,我从zf2 api调用中发现了一个奇怪的编码问题。我已经验证了api在内部工作,它应该发送回的响应来自api例程中的这一部分,它获取一个图像文件并对其进行裁剪: $result = new ViewModel(array('output'=>$output, 'response'=>json_encode($response))); $result在发送前转储如下所示: [output] => json [response] =>{"data":"http:\/\/de

我从zf2 api调用中发现了一个奇怪的编码问题。我已经验证了api在内部工作,它应该发送回的响应来自api例程中的这一部分,它获取一个图像文件并对其进行裁剪:

$result = new ViewModel(array('output'=>$output, 'response'=>json_encode($response)));
$result在发送前转储如下所示:

[output] => json
[response] =>{"data":"http:\/\/dev.xxxxx.com\/tools\/files\/temporary_files\/f16da1965e4d0c487ae7692f4b51558b917c238e.1","status":"OK"}
^_<8b>^H^@^@^@^@^@^@^C%ÍM
^B!^T^@໸^Nß¹Â,:B<õI<82><8e><83>¾<82><88>î^Ðò[}o<96><80><80>­ìNt¬B4(5^R>y*<93>F   ¥ï<ö&¨÷:E.^U§ lG^_0^·¿³4    ¤7^ZU:Gå, 5~É*h©µ^K^Ú¸\^\rÉNl^RÐcþÖëÆ>_Id»'<83>^@^@^@
但我得到的实际反应是:

[output] => json
[response] =>{"data":"http:\/\/dev.xxxxx.com\/tools\/files\/temporary_files\/f16da1965e4d0c487ae7692f4b51558b917c238e.1","status":"OK"}
^_<8b>^H^@^@^@^@^@^@^C%ÍM
^B!^T^@໸^Nß¹Â,:B<õI<82><8e><83>¾<82><88>î^Ðò[}o<96><80><80>­ìNt¬B4(5^R>y*<93>F   ¥ï<ö&¨÷:E.^U§ lG^_0^·¿³4    ¤7^ZU:Gå, 5~É*h©µ^K^Ú¸\^\rÉNl^RÐcþÖëÆ>_Id»'<83>^@^@^@

看起来已编码的部分是$responseContent的转储。我认为它可能是gzip,因为响应头说内容类型是gzip,所以我尝试了各种解压调用,但都没有成功。这到底是怎么回事?

内容是用gzip压缩的。您需要在响应上使用getBody(),而不是getContent()