如果连接到 MySQL和:
my $schema = MyDatabase::Main->connect("dbi:mysql:database=$database;host=$host",'root','', {mysql_enable_utf8 => 1});
连接强制为utf8;
连接到 SQLite :
my $schema = MyDatabase::Main->connect('dbi:SQLite:data/sample.db', {sqlite_unicode => 1});
连接好像不是utf8;
目的是消除在获取数据时必须使用 decode() 的情况:
从:
Mojo::ByteStream->new($cycle->type)->decode('utf-8')
到:
$cycle->type
谢谢
最佳答案
如果你连接到这个怎么办:
my $schema = MyDatabase::Main->connect(
'dbi:SQLite:data/sample.db',
'', # empty username
'', # empty password
{sqlite_unicode => 1}
);
也许
connect()
正在寻找选项 hash-ref 作为参数四,而没有意识到 SQLite 不需要用户名和密码参数。
关于perl DBIx sqlite {sqlite_unicode=>1}?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5000080/