我正在编写一个连接到SOAP服务器(主服务器)的“SOAP代理”,它本身就是一个SOAP服务器。我正在编写一个客户端,它将与此SOAP代理接触。
当SOAP客户端从SOAP代理调用特定的元数据时,我收到此错误:
SOAP-ERROR: Encoding: string 'Pir\xe4...' is not a valid utf-8 string
我不知道主服务器的实现语言是什么。我在代理服务器和客户端中使用PHP。信息来自主服务器,是一个复杂的对象。
我找到了问题的解决方法。在返回Proxy Server eveithyng中的内容之前添加此行是可以的:
$result = json_decode(utf8_encode(json_encode($result)));
但是,我认为这是quinte ninja的功能。还有更好的方法吗?有人过去发现过这种问题吗?或者我的意识形态缺少什么?
答案 0 :(得分:0)
我会说,可以对返回进行编码吗?但是使用Zend Framework方法对它进行编码会更性感:
// could be set in bootstrap
Zend_Json::$useBuiltinEncoderDecoder = true;
// should be correct utf8
$result = Zend_Json::encode($result);