Perl 如何让DBIx::Class与UTF-8进行比较?

Perl 如何让DBIx::Class与UTF-8进行比较?,perl,dbix-class,Perl,Dbix Class,我正在尝试使用在MySQL数据库上实现web搜索功能。除了一个问题之外,我还有一个问题:当搜索'u'时,MySQL以'u'的形式执行搜索(换句话说,没有umlaut)。对其他“扩展ASCII”字符也是如此。表和连接采用UTF8 我对数据库进行了一些测试,找到了解决方案:在where子句中添加'collate utf8_bin',如中所示: SELECT name FROM my_table WHERE name LIKE '%ü%' COLLATE utf8_bin; 但是如何用DBIx::

我正在尝试使用在MySQL数据库上实现web搜索功能。除了一个问题之外,我还有一个问题:当搜索'u'时,MySQL以'u'的形式执行搜索(换句话说,没有umlaut)。对其他“扩展ASCII”字符也是如此。表和连接采用UTF8

我对数据库进行了一些测试,找到了解决方案:在where子句中添加'collate utf8_bin',如中所示:

 SELECT name FROM my_table WHERE name LIKE '%ü%' COLLATE utf8_bin;
但是如何用DBIx::Class实现这一点呢?我的搜索结果是“WHERE…”。。。在一个查询中的两个表上使用“LIKE”

提前感谢,

毛里茨

$rs->search({
    name => \'LIKE ? COLLATE utf8_bin'
  }, {
    bind => [ '%' . $search_key . '%' ]
  }
);

也许?

我不知道在DBIx::Class中实现这一点的方法,但也许更好的方法是在MySQL配置中指定默认排序规则。您好,弗里多,谢谢您的评论。我认为这是最好的方法,即更新相关列的默认排序规则。