http://www.perlmonks.org?node_id=589132

jdtoronto has asked for the wisdom of the Perl Monks concerning the following question:

Esteemed monks,

SOAP::Lite has bitten me yet again. I have an application that queries a server which returns data from a MySQL database. Everything is fine - as long as there are no 'oddball' characters in the data. For example, I need do nothing more than add an é ( 0xE9 according to the Windows character map ) and then the whole thing stops. The table in MySQL has been defined with a character set of UTF-8.

I assume I am doing something inherently stupid, surely no reasonable module would reject standard characters sets like that?

In the following example method, taken from my server, I have whittled the code down to the point where I just set the name.

sub _10533 { # test method my ( $class, $message ) = @_; use XML::Simple; my $ref = XMLin($message); $ref->{data}->{firstname} = 'joé'; return XMLout($ref, KeepRoot => 1 ); }
If the name is 'joe' then the client gets the XML, if it is 'joé' then no data is returned.

So what am I doing wrong?

jdtoronto

updated correct typo, thanks marto