my $dbh = DBI->connect("dbi:SQLite:$dbname","","");
$dbh->{sqlite_unicode} = 1;
只要在打开数据库后设置sqlite_unicode变量为1,就可以按照utf8来操作数据,就不会乱码了。

居然这么简单。。。设置一个参数就得了,瞎折腾了。