實際上,開啟了調試功能的朋友,相信會發現 $client->response 返回的是正確的結果,為什么 $result = $client->call($action, array(‘parameters’ => $param)); 卻是亂碼呢?
研究過 NuSOAP 代碼后我們會發現,當 xml_encoding 設置為 UTF-8 時,NuSOAP 會檢測 decode_utf8 的設置,如果為 true,會執行 PHP 里面的 utf8_decode 函數,而 NuSOAP 默認為 true,因此,我們需要設置:
- $client->soap_defencoding = 'utf-8';
- $client->decode_utf8 = false;
- $client->xml_encoding = 'utf-8';
新聞熱點
疑難解答