Forum: Ruby SOAP Problem with Non-ASCII Characters

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
achim.domma (Guest)
on 2005-11-24 18:22
(Received via mailing list)
Hi,

I use Ruby to access a .Net Webservice which returns german umlauts
(äöü...). I create the service like this:

service = SOAP::RPC::Driver.new(server, InterfaceNS)
service.default_encodingstyle =
SOAP::EncodingStyle::ASPDotNetHandler::Namespace

If there are umlauts in the result, I get the following error:

c:/ruby/lib/ruby/1.8/xsd/datatypes.rb:198:in `screen_data':
{http://www.w3.org/2
001/XMLSchema}string: cannot accept 'Ärzteblatt'.
(XSD::ValueSpaceError)
        from c:/ruby/lib/ruby/1.8/xsd/datatypes.rb:140:in `set'
        from
c:/ruby/lib/ruby/1.8/soap/encodingstyle/soapHandler.rb:473:in `deco
de_textbuf'
        from
c:/ruby/lib/ruby/1.8/soap/encodingstyle/soapHandler.rb:210:in `deco
de_tag_end'
        from c:/ruby/lib/ruby/1.8/soap/parser.rb:191:in `decode_tag_end'
        from c:/ruby/lib/ruby/1.8/soap/parser.rb:152:in `end_element'
        from c:/ruby/lib/ruby/1.8/xsd/xmlparser/parser.rb:75:in
`end_element'
        from c:/ruby/lib/ruby/1.8/xsd/xmlparser/xmlparser.rb:36:in
`do_parse'
        from c:/ruby/lib/ruby/1.8/xsd/xmlparser/xmlparser.rb:31:in
`parse'
         ... 6 levels...
        from c:/ruby/lib/ruby/1.8/soap/rpc/driver.rb:275:in `call'
        from c:/ruby/lib/ruby/1.8/soap/rpc/driver.rb:302:in `search'
        from c:/ruby/lib/ruby/1.8/soap/rpc/driver.rb:297:in `search'
        from C:/Sandbox/test_NewsSearch.rb:25

Could somebody tell me how to fix this problem?

regards,
Achim
nakahiro (Guest)
on 2005-11-26 06:37
(Received via mailing list)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

Achim D. (SyynX Solutions GmbH) wrote:
> I use Ruby to access a .Net Webservice which returns german umlauts
> (äöü...). I create the service like this:
>
> service = SOAP::RPC::Driver.new(server, InterfaceNS)
> service.default_encodingstyle =
> SOAP::EncodingStyle::ASPDotNetHandler::Namespace
>
> If there are umlauts in the result, I get the following error:

If your server allows UTF-8, whichever of these should work.

(1) pass -Ku argument to ruby interpreter such as 'ruby -Ku myclient.rb'
(2) add $KCODE = 'UTF8' at the top of the script.
(3) set XSD::Charset.encoding = 'UTF8'

Regards,
// NaHi
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (Cygwin)

iD8DBQFDh+Xbf6b33ts2dPkRAjuDAJ9vU8sb91++NrvrnMJqV1Cfw559TgCdE8CV
XjuNy2qfliDHphu4tiAVyLw=
=SCCj
-----END PGP SIGNATURE-----
This topic is locked and can not be replied to.