0
我試圖使用來自PHP的Curl調用.net webservice。 每次我嘗試去做,我都會遇到編碼錯誤。它說utf ... 8不支持。當我檢查tcpdump(PacketPeeper)時,我發現由於某種原因,curl正在將字符串「utf-8」轉換爲「utf ... 8」。實際上,它將所有的「 - 」轉換爲「...」。在做捲曲時,PHP將連字符轉換爲三個點
任何想法爲什麼?
$req = "<?xml version=\"1.0\" encoding=\"utf‐8\"?>
<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema‐instance\"
xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"
xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">
<soap:Body>
<GenerateLink>
..............
</GenerateLink>
</soap:Body>
</soap:Envelope>";
$soap_do = curl_init();
curl_setopt($soap_do, CURLOPT_URL, "http://www.myurl.com/serv.asmx");
curl_setopt($soap_do, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true);
curl_setopt($soap_do, CURLOPT_POST, true);
curl_setopt($soap_do, CURLOPT_POSTFIELDS, $req);
curl_setopt($soap_do, CURLOPT_HTTPHEADER, array('Content-Type: text/xml; charset: utf-8' ,'SOAPAction: "http://www.myurl.com/serv.asmx"', 'Content-Length: '.strlen($req)));
$response = curl_exec($soap_do);
隨機的事情嘗試:如果您設置'CURLOPT_HTTPHEADER' _before_'CURLOPT_POSTFIELDS'會發生什麼? – Wrikken