公司开发的PHP系统要调别人JAVA开发的一个WebService。我传了XML字符串给他,对方能接收到串,但是当XML属性值为中文时,显示为乱码。 如: <userName>张三 </UserName>,接收后,张三会为乱码。 初步判断是编码的问题:.NET系统是GB2312编码格式,JAVA系统是GBK编码格式,XML中设定的是UTF-8格式。 请问有没有人遇到过这个问题?有好的解决办法吗?谢谢!
调试欢乐多
header("Content-Type: text/html;charset=utf-8");
require_once('lib/nusoap.php'); //必须添加这个SOAP文件
//$client = new soapclient('http://19.82.4.106:8099/Service1.asmx?wsdl', true); //建立soap客户端
$client = new soapclient('http://19.82.4.106:8001/OrderCenter.asmx?wsdl', true); //建立soap客户端
$client->soap_defencoding = 'utf-8';
$client->decode_utf8 = false;
你看这样行不。我开始在IE里面报错,也是乱码,最后这样设置了之后就行了
你用PHP传过去的时候设定XML是什么编码?另外,乱码是什么样子的?能贴上来看看吗
看看上面的帖子
注意这个解决办法:
$this->mail->Subject = "=?utf-8?B?".base64_encode($subject)."?=";