ID:               28969
 Comment by:       cdcampos at netcabo dot pt
 Reported By:      ba at esoft dot dk
 Status:           Closed
 Bug Type:         SOAP related
 Operating System: Linux 2.6.7-gentoo-r3
 PHP Version:      5.0.0RC3
 Assigned To:      dmitry
 New Comment:

I've checked with the current version (5.0.1) and it's working fine
both in SoapClient and SoapServer.

The problem that remains is with SoapFault. It seems it's not
recognizing the enconding given before to the Server or Client Class.
Here is an example:

function AlteraEstado($dados) {
        if ($dados == 'GARBAGE') return new SoapFault("Server", "çedilha");
        else return array("Answer"=>"OK");
}
$server = new SoapServer("GPR.wsdl", array('encoding'=>'ISO-8859-1'));
$server->addFunction(array("AlteraEstado"));
$server->handle();

This code returns no valid XML Soap Envelope back to client (I suppose
it breaks...).


Previous Comments:
------------------------------------------------------------------------

[2004-08-13 08:52:30] bryanguo at 21cn dot com

Hi, I tested the "encoding" option, but it doesn't work yet. In my
case, I need to send/receive chinese characters in the data. So firstly
I hope the SOAP data can encode with "gb2312":
$SOAP = new SoapServer("test.wsdl",array('encoding'=>'gb2312'));

Unfortunately, the return data is like below and "encoding" option is
still 'UTF-8':
HTTP/1.1 200 OK
Date: Fri, 13 Aug 2004 06:42:12 GMT
Server: Apache/2.0.48 (Unix) PHP/5.0.0
X-Powered-By: PHP/5.0.0
Set-Cookie: SCP_WS_SESSIONID=635131d75dc3b040f0d96e88518fe02c; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0,
pre-check=0
Pragma: no-cache
Content-Length: 639
Connection: close
Content-Type: text/xml; charset="utf-8"

<?xml version="1.0" encoding="UTF-8"?>
   <SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns1="http://xxx"; xmlns:ns2="http://xxx";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/";
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";>
      <SOAP-ENV:Body>
         <ns1:FindDriversResponse>
            <FindDriversReturn SOAP-ENC:arrayType="ns2:Driver[0]"
xsi:type="ns1:ArrayOf_tns1_Driver"/>
         </ns1:FindDriversResponse>
      </SOAP-ENV:Body>
   </SOAP-ENV:Envelope>

What's the problem?

------------------------------------------------------------------------

[2004-08-11 08:25:51] ba at esoft dot dk

I will check it out.. sounds great!

------------------------------------------------------------------------

[2004-08-10 18:37:24] [EMAIL PROTECTED]

Fixed in CVS HEAD.

By default ext/soap espect all string data in utf-8 encoding.

Now it is possible to change internal encoding with "encoding" option.
It is acceptable both by SoapClient and SoapServer.

$SOAP = new SoapServer("test.wsdl", 
  array('encoding'=>'ISO-8859-1');


------------------------------------------------------------------------

[2004-06-30 09:38:43] ba at esoft dot dk

Description:
------------
I'm using SOAP webservices and need to send special characters (danish
letters in my case) in the data, it seems these letters break the SOAP
parser.

Previously we have used NuSOAP for webservices, and here special
letters are encoded / decoded transparantly.

Reproduce code:
---------------
class testWebservice {
        function test() {
                return "æøå";
        }
}

$SOAP = new SoapServer("test.wsdl");
$SOAP->setClass("testWebservice");
$SOAP->handle();


Expected result:
----------------
The returned string "æøå"



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=28969&edit=1

Reply via email to