perl DBIx sqlite {sqlite_unicode=>1}?

标签 perl sqlite unicode cjk dbix-class

如果连接到 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/

相关文章:

javascript - Phonegap本地存储和面向对象的JS

c# - 从 SQLite 数据库文件检索一百万条记录并将其显示在 WPF 数据网格中的最快方法是什么?

Python:Unicode 问题

c# - 为什么'Weiss'='Weiß'或通过Unicode列在SQL Server中搜索

Perl 自动化散列填充和 key 名称

perl - 如何防止使用 `Data::Dumper`打印变量名

android - Android 数据库的最佳实践

java - 将字符串转换为 unicode

perl - 为什么 .* 不消耗这个 Perl 正则表达式中的整个字符串?

perl - 如何优雅地调用名称保存在变量中的 Perl 子例程?