[英]PHP SOAP Client with Special Characters (Encoding)?
我正在嘗試使用PHP的SOAP客戶端。 這很好,因為我只是知道它。 但是當Data contains Special Character
時會出現問題。

在數據中。) 以下是樣本:
header('Content-Type: text/plain; charset=UTF-8');
$client = new SoapClient('http://www.example.com/webservice.asmx?WSDL', array('trace' => 1, 'encoding'=>'UTF-8'));
$result_1 = $client->GetText();
$result_2 = $client->GetText_withSpecialCharacter(); //Data contains `` hex-code (♫ Special Character)
var_dump($result_1);
var_dump($result_2);
$result_1
$result_2
(它總是返回BLANK) 請建議我該怎么辦?
您可以嘗試將編碼設置為UTF-8
例
$client = new SoapClient('http://www.example.com/webservice.asmx?WSDL', array('trace' => 1, 'encoding'=>' UTF-8'));
嘗試
$result_1 = urldecode($client->GetText());
$result_2 = urldecode($client->GetText_withSpecialCharacter());
也許你可以試試這個:
$myString = $client->GetText_withSpecialCharacter();
$result_2 = urldecode($myString);
if ($myString != urlencode($result_2)) {
$result_2 = mb_convert_encoding($myString, "UTF-8", mb_detect_encoding($myString,"auto",true));
}
問題很老但有一個解決方案:
$result_2 = html_entity_decode($client->GetText_withSpecialCharacter(), ENT_QUOTES | ENT_XML1);
但
似乎不是有效的UTF-8字符。 0xE
是Shift Out字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.