That would be because Java Strings are normally in UTF-16. If you specify characterEncoding=utf8, UTF-8 will be used on wire and the MySQL JDBC driver will convert it to UTF-16 after receiving data since Java normally operates in UTF-16.
Quercus Mysqli uses characterEncoding=8859_1 by default to suppress encoding conversion in the driver AFAIK. Then MySQL SET NAMES command to make communication with the server in that encoding. Since the first 256 character of Unicode is the same as ISO 8859-1, the JDBC driver will not convert encoding of strings and your PHP scripts will get strings in the encoding as specified in the SET NAMES command. Quite ugly implementation IMO.
If you use unicode.semantics=on in php.ini, your PHP scripts will work with UTF-16 strings and the story will change.
--
You received this message because you are subscribed to the Google Groups "Quercus" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caucho-quercu...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Quick update, using unicode.semantics=on with the proper syntax fixed this, so I'm going to use that instead of converting everything, makes the php much more portable in case I need to migrate to other servers.
Thanks Kaz for your help!