When using soap4r with a Babelfish Web service I ran into trouble with it validating the UTF-8 responses. Errors were of the form:
/usr/lib/ruby/1.8/xsd/datatypes.rb:198:in `screen_data': {http://www.w3.org/2001/XMLSchema}string: cannot accept 'dieses heraus prüfend '. (XSD::ValueSpaceError)
I fiddled around with $KCORE and XSD before giving up and using this hack. Add this snippet to your application somewhere:
# Override the standard library class so that it doesn't complain about encoding differences class XSD::XSDString def screen_data(value) value end end
This removes the exception raising check! :) Dodgy as hell, but it works fine and I couldn't be bothered fiddling with it for even longer.