We recently had a customer who was reporting some strange encoding when using cURL.
POST calls were working correctly, but when performing a GET the data that was returned was unreadable.
After some investigation, the solution was found to be adding this line to the cURL call:
curl_setopt($ch,CURLOPT_ENCODING,'gzip');