每个人都知道如何用codeiginter实现页面搜索。一个问题是我的关键字,例如“ș阿威克ă" 有变音符号。如何用这个关键字搜索数据库表。简单 $this->db->like($keyword); 返回数据库错误。我的数据库字符编码设置为 utf8-general-ci 我搜索的表中有 utf8_romanian_ci 编码。
$this->db->like($keyword);
utf8-general-ci
utf8_romanian_ci
zd287kbt1#
输出 SHOW CREATE TABLE 您应该从以下方式中选择一种:
SHOW CREATE TABLE
the_column ... CHARACTER SET utf8, -- or utf8mb4
或者,如果未在 the_column ,那么
the_column
CREATE TABLE ... (...) DEFAULT CHARACTER SET utf8; -- or utf8mb4
检查一下 Șaweqă 已存储(通过 INSERT ,等等)正确地使用utf8 SELECT HEX(col)... . 你应该得到 C898 61 77 65 71 C483 为了 Șaweqă . (我添加了空格来区分字符。)检查是否已提取(通过 SELECT ,等)正确地,查看输出。
Șaweqă
INSERT
SELECT HEX(col)...
C898 61 77 65 71 C483
SELECT
os8fio9y2#
尝试在ci配置文件中允许特殊字符:
$config['permitted_uri_chars'] = 'a-z 0-9~%.:@_\-ä';
如果你正在使用 GET 方法,尝试 urldecode() 关键字:
GET
urldecode()
$keyword = urldecode($keyword);
2条答案
按热度按时间zd287kbt1#
输出
SHOW CREATE TABLE
您应该从以下方式中选择一种:或者,如果未在
the_column
,那么检查一下
Șaweqă
已存储(通过INSERT
,等等)正确地使用utf8SELECT HEX(col)...
. 你应该得到C898 61 77 65 71 C483
为了Șaweqă
. (我添加了空格来区分字符。)检查是否已提取(通过
SELECT
,等)正确地,查看输出。os8fio9y2#
尝试在ci配置文件中允许特殊字符:
如果你正在使用
GET
方法,尝试urldecode()
关键字: