PHP Zend SOAP中的UTF8错误

时间:2011-08-24 14:18:03

标签: php zend-framework soap utf-8

我正在编写一个连接到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的功能。还有更好的方法吗?有人过去发现过这种问题吗?或者我的意识形态缺少什么?

1 个答案:

答案 0 :(得分:0)

我会说,可以对返回进行编码吗?但是使用Zend Framework方法对它进行编码会更性感:

// could be set in bootstrap
Zend_Json::$useBuiltinEncoderDecoder = true;

// should be correct utf8
$result = Zend_Json::encode($result);