我正在为数据库创建一个简单的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恢复正常呢?
发布于 2018-06-08 06:59:48
您的模式需要配置为支持UTF-8。这里有一组有用的东西可以尝试:
How to properly use UTF-8-encoded data from Schema inside Catalyst app?
https://stackoverflow.com/questions/34788928
复制相似问题