I have a problem related to this question. I have a web service (also using php) that returns some names. When any of them contains Swedish characters (å, ä or ö) and probably others as well i get a soapfault (looks like we got no XML document). I can however see the full (correct afaik) response using $soapcalo->__getLastResponse().
How do I handle the special characters? I have tried adding the encoding attribute (utf-8) on both client and server but without success.
Edit: Excerpt of the soap reply:
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="..."> <SOAP-ENV:Body> <ns1:callFunctionResponse> <ns1:Response> <ns1:result>success</ns1:result> <ns1:content> <Contact> <userName>VIB09SLA9EP</userName> <firstName>Patrik</firstName> <lastName>Stenström</lastName> </Contact> </ns1:content> </ns1:Response> </ns1:callFunctionResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Ok everyone - problem finally solved, thought I'd post it here for anyone else with similair problems. As it turns out, the problem occured earlier in the process.
The content of the SOAP reply was generated building the structure with a DomDocument. Later that was saved with the saveHTML function. As it turns out, that function adds some HTML encodings which breaks the soap decoding on the client.
When instead using the saveXML function the reply gets through successfully (also when adding tags and other strange stuff) and is also decoded to the correct strings by the soap client.
I hope this is the end of it, but you never know :)
Thanks for all the help and +1 on those helpful to checking the right places.