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


in reply to Problem with SOAP::Lite and accented characters.

The table in MySQL has been defined with a character set of UTF-8.

Since DBD::MySQL only has very limited and experimental support for utf-8, what encoding is the output message in? You might need to do an explicit encode() to utf8 or whatever encoding your XML output is expecting.

  • Comment on Re: Problem with SOAP::Lite and accented characters.

Replies are listed 'Best First'.
Re^2: Problem with SOAP::Lite and accented characters.
by jdtoronto (Prior) on Dec 11, 2006 at 20:09 UTC
    Good question, but exactly the same thing happened when the database table had a default character set of latin-1.

    jdtoronto

      Ok, but encoding mismatches still might be the source of the problem: if your (SOAP) xml prolog and/or HTTP headers end up with the wrong indication for the character encoding, it's likely you'll run into trouble somewhere. IIRC perl will use either utf-8 or latin-1 for 'high-bit' encoding.

      You probably expect your XML to be in one or the other, so you need to be sure the data in it is correctly encoded. If everything else is working correctly, doing an Encode::encode() to utf-8 or latin-1 over the whole resulting XML response and a binmode() to :bytes (or possibly just a binmode to utf8 if that's what you're using) should work.