2011-08-24 37 views
0

我正在編程一個連接到SOAP服務器(主服務器)並且是SOAP服務器本身的「SOAP代理」。我正在編寫一個客戶端,它將與此SOAP代理進行聯繫。PHP中的UTF8錯誤Zend SOAP

當SOAP客戶端調用由SOAP代理特定metodh我收到此錯誤:

SOAP-ERROR: Encoding: string 'Pir\xe4...' is not a valid utf-8 string 

我沒有什麼語言主服務器實現知道。我正在使用代理服務器和客戶端中的PHP。信息來自主服務器,是一個複雜的對象。

我找到了解決問題的方法。加入這一行之前返回代理服務器eveithyng內容爲確定:

$result = json_decode(utf8_encode(json_encode($result))); 

但是,我認爲這是昆蒂忍者函數來完成。有更好的方法嗎?任何人在過去發現過這種問題?還是在我的意識裏失蹤了?

回答

0

我會說,這是可以編碼的回報?但更性感的是它使用Zend Framework的方法來編碼它:

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

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