【发布时间】:2016-04-19 17:45:41
【问题描述】:
我正在为数据库创建一个简单的 CRUD 接口,并且正在尝试 RapidApp。
我有一个现有的数据库,我使用现有的基于 Moose 的代码连接到该数据库。有一个复杂性,因为数据库中有 UTF-8 文本(例如,'Encyclopédie médico-chirurgicale.Técnicas quirúrgicas.Aparato digestivo')
我的基于 Moose 的代码运行良好:数据输入和数据输出......每个人都很开心。
在我现有的 Moose 代码中,连接器是:
$schema = My::Service::Schema->connect(
'dbi:Pg:dbname=my_db;host=my.host.name;port=1234',
'me',
'secret',
{ pg_enable_utf8 => 1 }
);
当我开始连接 RapidApp 时,我首先尝试了一个简单的 rdbic.pl 命令,但它并没有获取 UTF-8 字符串。为了强制执行 UTF-8-ness,我创建了以下内容:
use Plack::Runner;
use Plack::App::RapidApp::rDbic;
my $cnf = {
connect_info => {
dsn => 'dbi:Pg:dbname=my_db;host=my.host.name;port=1234',
user => 'me',
password => 'secret',
{ pg_enable_utf8 => 1 },
},
schema_class => 'My::Service::Schema'
};
my $App = Plack::App::RapidApp::rDbic->new( $cnf );
my $psgi = $App->to_app;
my $runner = Plack::Runner->new;
$runner->parse_options('--port', '5678');
$runner->run($psgi);
(几乎是rdbic.pl,压缩成一个特定的东西)
但是 - 我得到了格式错误的字符串(例如:'Encyclopédie médico-chirurgicale.Técnicas quirúrgicas.Aparato digestivo')
在努力将正确的文本输入数据库后,我知道数据库是正确的……那么如何连接 RapidApp 以恢复 UTF-8?
【问题讨论】:
标签: perl postgresql catalyst