【问题标题】:How to connecting RapidApp to PostgreSQL, with utf-8 enabled如何在启用 utf-8 的情况下将 RapidApp 连接到 PostgreSQL
【发布时间】: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


    【解决方案1】:

    您的架构需要配置为支持 UTF-8。以下是一组有用的尝试:

    How to properly use UTF-8-encoded data from Schema inside Catalyst app?

    【讨论】:

      猜你喜欢
      • 2022-01-24
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 2020-04-18
      • 2011-05-27
      • 2016-11-23
      • 1970-01-01
      • 2013-11-15
      相关资源
      最近更新 更多