我正在使用带有自动发现的Zend Soap Server,这是我的代码:
$wsdl = new Zend_Soap_Autodiscover();
$wsdl->setClass('SoapParser');
if (isset($_GET['wsdl'])) {
$wsdl->handle();
} else {
$server = new Zend_Soap_Server('http://zzz.zz.zz/store.php?wsdl');
$server->setClass('SoapParser');
$server->setEncoding('UTF-8');
$server->setObject(new SoapParser());
$server->handle();
}
当我通过SOAP客户端调用某些方法时,我收到此错误:
SOAP-ENV:ServerSOAP-ERROR:编码:字符串'00127920110531 xxx zzz Dom 67 av Ren \ xe9 ...'不是有效的utf-8字符串
“\ xe9”是“é”...源表是UTF-8
如果我改变
$server->setEncoding('UTF-8');
在
$server->setEncoding('ISO-8859-1')
我没有收到错误,但字符串没有被正确解析,有奇怪的字符...
有什么想法吗?
答案 0 :(得分:1)
这不是您的服务器的问题,这是您的客户端的问题。
您的客户正在提交ISO-8859-1
字符串,您可以在提交之前尝试utf8_encode()
数据。
如果在客户端和服务器都使用相同的编码时仍然看到奇怪的字符,那么您可能会有一个混合多个编码的源字符串。它是从单一来源构建的吗?是否在某处正确显示?