在codeigniter中实现搜索

时间:2018-01-18 16:18:11

标签: mysql sql codeigniter character-encoding

每个人都知道如何使用codeiginter在页面中实现搜索。

一个问题是我的关键字,例如“Şaweqă”有diacritisc。如何使用此关键字搜索数据库表。

简单$this->db->like($keyword);返回数据库错误。

我的数据库字符编码设置为utf8-general-ci,我搜索的表格中包含utf8_romanian_ci编码的行。

2 个答案:

答案 0 :(得分:1)

尝试在CI配置文件中允许使用特殊字符:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:@_\-ä';

如果您使用GET方法,请尝试urldecode()关键字:

$keyword = urldecode($keyword);

答案 1 :(得分:1)

SHOW CREATE TABLE 的输出应该是以下方式之一:

the_column ... CHARACTER SET utf8,   -- or utf8mb4

或,如果未在the_column上指定,则

CREATE TABLE ... (...) DEFAULT CHARACTER SET utf8;  -- or utf8mb4

要检查Șaweqă存储(通过INSERT等)正确地作为utf8,请执行SELECT HEX(col)...之类的操作。您应该C898 61 77 65 71 C483获得Șaweqă。 (我添加了空格来区分字符。)

要检查是否已正确获取(通过SELECT等),请查看输出。