OK, sorry to bring up everyone's least favourite subject, but I had a conversation with Nick Clark at OSCon, who suggested that the best route to Unicode conformance (for now - until DBIv2) is to actually explicitly turn off the UTF-8 flag when you populate the record AV during fetch(). The reason you should do this (I believe) is because the resulting strings may get passed just about anywhere during a fetch loop, and something may or may not alter the UTF-8 flag, and it'll get left set/unset the next time around the fetch loop for the next value (sv_setpv doesn't alter this flag - it leaves it as-is). This will not be what you want.

i.e. for every fetch call, you need to do:

  SvUTF8_off(AvARRAY(av)[i]);

Now, people using your DBD can decide to upgrade the variable if they wish to, but most people who don't need to will be unaffected.

Matt.



Reply via email to