The man page for the "Encode" module in Perl 5.8.0 points
out the following, under the heading "The UTF-8 flag",
sub-heading "Messing with Perl's internals":
in reply to restore unicode data from database?
I'm not saying that this is a good alternative to
the work-around that you are already using. I have a hunch
that anything else, that would actually treat the RDBM as a
utf-8 source, would require mucking with the DBD or Tie:RDBM
module internals, and would be problematic, since a database
(and any interface to it) needs to be flexible about handling
many types of non-ASCII data -- not just unicode characters.
The following API uses parts of Perl's internals in the
current implementation. As such, they are efficient but
[INTERNAL] Turns on the UTF-8 flag in STRING. The
data in STRING is not checked for being well-formed
UTF-8. Do not use unless you know that the STRING is
well-formed UTF-8. Returns the previous state of the
UTF-8 flag (so please don't treat the return value as
indicating success or failure), or "undef" if STRING
is not a string.
Personally, I'd be content with the method you are already