perl DBIx sqlite {sqlite_unicode => 1}?

Wei*_*yan 3 sqlite unicode perl cjk dbix-class

如果连接到MySQL:

my $schema = MyDatabase::Main->connect("dbi:mysql:database=$database;host=$host",'root','', {mysql_enable_utf8 => 1});
Run Code Online (Sandbox Code Playgroud)

连接被强制为utf8;

连接到SQLite:

my $schema = MyDatabase::Main->connect('dbi:SQLite:data/sample.db', {sqlite_unicode => 1});
Run Code Online (Sandbox Code Playgroud)

连接似乎不在utf8中;

目的是消除在获取数据时必须使用decode():from:

Mojo::ByteStream->new($cycle->type)->decode('utf-8')
Run Code Online (Sandbox Code Playgroud)

至:

$cycle->type
Run Code Online (Sandbox Code Playgroud)

谢谢

mu *_*ort 8

如果你连接这个怎么办:

my $schema = MyDatabase::Main->connect(
    'dbi:SQLite:data/sample.db',
    '', # empty username
    '', # empty password
    {sqlite_unicode => 1}
);
Run Code Online (Sandbox Code Playgroud)

也许connect()正在寻找选项hash-ref作为参数四而没有意识到SQLite不需要用户名和密码参数.