in reply to database stores UTF8 strings inconsistently

borisz is right, DBD::ODBC gives you the raw bytes, and doesn't turn on perl's internal utf8 flag. His answer is perfectly correct too, but in practice I've chosen to drop DBD::ODBC in favor of DBD::ADO. It does a much better job of handling unicode text. I can't tell you why, but that's my experience.

But I should add that I needed this snippet at the top of my code to get full utf8 support:

# for ADO usage use Win32::OLE; Win32::OLE->Option( CP => Win32::OLE::CP_UTF8 );