[英]SOAP UTF-8 encoding
我有一個奇怪的問題。 在PHP
我想使用SOAP與Web服務進行通信。
$soapURL = "http://www.somedomain.com/xyz.asmx?WSDL";
$soapParameters = Array('login' => "123", 'password' => "pwd", 'soap_version' => SOAP_1_2, 'exceptions' => True) ;
$client = new SoapClient($soapURL, $soapParameters);
使用XAMPP,它可以在本地正常工作。
在Web服務器上嘗試該操作時,出現以下錯誤消息:
Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://www.somedomain.com/xyz.asmx?WSDL' : Input is not proper UTF-8, indicate encoding ! Bytes: 0xFC 0x6C 0x74 0x69 in ...
錯誤出現在我的代碼示例的最后一行。
有任何想法嗎?
mb_detect_encoding($soapURL);
說字符串是ASCII格式 utf8_encode
, iconv
和mb_convert_encoding將每個字符串轉換為UTF-8 ... header('Content-type: text/html; charset=utf-8');
我終於解決了它。 問題是來自Windows服務器和Linux客戶端的通信。 我不知道為什么它可以在某些Linux機器上運行,但是沒關系。
我在源代碼處添加了本地wsdl文件,並將其用於SOAPClient。 對於服務器,我使用了__setLocation函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.