ホームページ >バックエンド開発 >PHPチュートリアル >PHPがWebサービスインターフェースを呼び出す際の文字化けとエラーレポートの問題
$client = new SoapClient('http://www.webxml.com.cn/WebServices/TraditionalSimplifiedWebService.asmx?wsdl');
$client->soap_defencoding = 'UTF-8'; client->decode_utf8 = false;
$obj = $client->toTraditional Chinese(array('sText'=>''));
print_r($obj)
?> これは私が書いたものですインターネット上で公開されている簡体字中国語を繁体字中国語に変換する Web サービスを呼び出すコード。soap_defencoding を UTF-8 に指定し、decode_utf8 を false に指定しました。ただし、実行後、[Encoding: string 'xb8...' is not a.] というプロンプトが表示されます。 valid utf-8 string ]
これに対処する方法を見つけるのを手伝ってください
は、 array('sText'=>' ' が utf-8 ではないことを意味します
つまり、プログラム ファイルは utf-8 ではありません
ただし、 utf-8 の場合は、なぜわざわざ文字を宣言するのか
さらに
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = false
エンコーディング: string 'xb8 ...' は有効な utf-8 文字列ではありません
渡されたパラメータは utf-8 文字列ではありません
つまり、array('sText'=>' ' は utf-8 文字列ではありません
それはあなたのプログラムを意味しますファイルは utf-8 ではありません
しかし、utf-8 である場合、なぜ文字セットを宣言するのでしょうか
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = false ;
は nusoap の書き方
私も nusoap で書きましたが、php 実行時はエラーは報告されませんでしたが、やはり結果は文字化けしてしまいました。これはすべて正常であり、文字セットを宣言する必要はありません。
ファイルは utf-8 形式でのみ保存できますか?
SOAP は XML を介してデータを送信します
、XML のデフォルトの文字セットは utf-8 であるため、文字セットが宣言されていない場合は utf-8 になります
アプリケーションは実際に gbk を使用する必要があります (エラー メッセージから、次のようにすることができます)見てください)
したがって、nusoap を使用する場合は、 $client->soap_defencoding = 'gbk'; が必要です
または、nusoap のコードを変更します
追加するには:
サンプル コードは「person」を送信します
返されるはずです「?」
モデレータさん、詳しく教えていただきありがとうございます。私はこれに取り組んだばかりで、あまり詳しくありません
元の投稿者のおかげで、問題は解決しました