[PHP-users 9963] Re: SOAP通信での文字コードについて

Naoki Shima php-users@php.gr.jp
Tue, 10 Sep 2002 19:28:16 +0900


嶋です。

On 2002.9.9, at 05:41 午後, Shinji Hotta wrote:

> 堀田です。
>
> にすると、文字化けが起こり日本語とうまく表示されませんでした。
> そこで、返ってきた$resultの文字コードをmb_detect_encoding($result)で調べた結
>> $resultはASCIコードだと分かりました。
> SOAPで日本語をやり取りするときには、GoogleAPIのようにUTF-8にエンコーディング
> してからやらなければならないのでしょうか?
> 教えてください。

PEAR SOAPが利用しているPEAR のXMLパッケージは日本語に対応していないため、
UTF-8に変換してから、通信を行う必要があります。

>
> あと、引数のやり取りについてなんですが、
> PHP同士のやり取りでは、
> $result 
> =$obj->call('returnString',array(),'http://192.168.7.148/Test');
> の部分で、call関数の二つ目の引数であるarray()を
> array("送信する関数の引数名"=>"引数")

array('引数の型' => '引数')が正しい引数のフォーマットです。
PEAR SOAPで利用できる引数の型は以下の通りです。
String    文字列
Integer  数値
Array    配列
   連想配列ではなく、配列です。
Struct  構造体
    連想配列。Perlではハッシュ(hash)とよばれていますね。
    例:array('string' => '文字');

W3CのSOAP規格にも目をとおしておくといいかと思いますよ。

それでは

--
嶋 直毅

naoki@avantexchange.com
murahachibu@php.net