On Thu, 3 Jun 2010, Alexander Foken wrote:

Really strange way to avoid pack()/unpack(). At least, you can get rid of the

Yes, yes, this is hack code, not production.

... should just work. It doesn't quite, because the hex string is not just a dump of a 16 Bit Unicode encoding, but it is a UTF-8 byte stream written with a 16 Bit Hex Format for each byte. Each and every 16-Bit-Word has its most significant byte set to 0.

If it was a dump of a 16 Bit Unicode encoding, it should read
"0065006d00200064006100730068003a00202014"
and not
"0065006d00200064006100730068003a002000e200800094"

Your call to decode() compensates that, probably because you encoded once too much before writing the data into the database.

I did not encode at all. I simply created a utf8 string in Perl land and inserted it into Sybase.

Really, DBD::Sybase needs to handle any character set translation, not the end user.


-dave

/*============================================================
http://VegGuide.org               http://blog.urth.org
Your guide to all that's veg      House Absolute(ly Pointless)
============================================================*/

Reply via email to