【发布时间】:2011-06-28 08:23:40
【问题描述】:
我正在查询表“post”;它的字段用户名和内容是utf8中文。我需要将它们转换为 big5 以在 Windows 控制台中打印。我的脚本编译失败,报错说重新定义了 ENCODE 例程。
我有另一个脚本可以在没有 DBI 的情况下测试编码/解码,它工作正常。我该如何解决?
脚本:
use DBI;
use strict;
use ENCODE qw /encode decode/;
my $dbh = DBI->connect("dbi:SQLite:dbname=tweetylicious.db","","",{sqlite_unicode => 1});
$dbh->do("PRAGMA foreign_keys = ON");
my $result_aref = $dbh->selectall_arrayref("SELECT * FROM post");
foreach my $user ( @$result_aref ) {
my $name = ${$user}[1];
my $content = ${$user}[2];
print encode("utf8", $name), " : ",$content, "\n";
}
错误:
subroutine DEBUG redefined at path-to-lib/ENCODE.pm line 144
subroutine encoding redefined at path-to-lib/ENCODE.pm line 164
...
【问题讨论】:
-
在将
ENCODE修复为Encode并使用虚拟表创建数据库后,我能够运行该程序,但没有收到您描述的错误。