Show quoted text> can you supply a piece of code to show what is happening?
It pretty trivial. The strings returned from queries should have SvUTF8
flag set, but they don't. Especialy now, that sqlite3 is always in utf8
mode... (you see, it's 9 months since the original report).
Anyway, if you want, I can post a small testcase. Sorry for the czech
text, but I needed some non-ascii text and I happen to use
cs_CZ.ISO-8859-2 locale. You don't need to understand it. Just compare
whether the three strings are the same. First the string (which is
UTF8, because the source does use utf8) is written to a database, then
it's printed from memory and then it's fetched from database. First
time without any mangling and second time the SvUTF8 flag is forced on
it (utf8::decode and Encode:_utf_on are equivalent). One would expect,
that the string comes out three times the same. But the second time, it
causes a LOT of warnings and prints garbage. That is because though the
string is in UTF-8 internaly, perl thinks it's iso-8859-1 (DBD::SQLite
didn't tell it better) and tries to convert it -- which fails.