php调用webservice乱码的解决办法:首先打开“nusoap.php”文件;然后修改内容为“var $soap_defencoding = 'UTF-8';”;最后在调用时指定编码即可。
webservice中有中文的话,返回的值就变成了乱码.查看了一下response的结果,是正确的.应该是用nusoap处理的时候出现了问题.
更改了nusoap.php两个地方就OK了.
更改的地方:86行的:var $soap_defencoding = 'UTF-8';
4998行的:var $decode_utf8 = false;
不更改也可以,不过在调用的时候就必须指定编码.
1.服务器端接口$server=new soap_server(); //生成对象
$server->soap_defencoding = 'utf-8';
$server->decode_utf8 = false;
2.调用用接口$client = new soapclient('http://localhost/TestService/Service1.asmx?WSDL', true);
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = false;