【问题标题】:Wild card in a search string become special character搜索字符串中的通配符成为特殊字符
【发布时间】:2018-06-05 09:13:55
【问题描述】:

我正在使用 CI3,并且我有一个搜索页面。在我的搜索页面中,我有一个名为 LIKE 的选项。我在搜索字符串之前使用了 % 值,例如 %dd11,它变成了这样

在哪里 t.name LIKE '�11'

我添加了 在标题中,我还在数据库配置中设置了我的字符集。

这是我的表单输入字段

这是我的php代码

if (preg_match('/(LIKE).*/', $field)) {
      $field = preg_replace('/\s(LIKE)/', '', $field);
        $field =  $field.' LIKE';
        if (preg_match("/\./", $field)) {
          $where .= $field." '".$value.";
       } else {
           $where .= "t.".$field." '".$value.";
        }
}

谁能告诉我为什么它变成这样编码。请帮帮我

【问题讨论】:

  • 答案可能在于here
  • 实际上,这似乎是 UTF-8 和 URL 编码问题...%ddÝ (url 编码),它正在变成 �,因为它不支持你的字符集。我猜你在不应该使用的地方使用urldecode(),并且可能没有对数据库连接器中的字符集进行排序。
  • 我在我的登录模块中使用 urldecode(),而不是在这个模块中。这就是我在 db 文件中设置字符集的方式; $db['tiffinTom']['char_set'] = 'utf8'; $db['tiffinTom']['dbcollat​​'] = 'utf8_general_ci';

标签: php sql database codeigniter codeigniter-3


【解决方案1】:

在页面中使用Utf8编码后,用notepad++打开包含该字符的文件,点击Enconding菜单,然后选择convert to utf8 without boom。保存并再次运行。

您可以使用其他文本编辑器,notepad++ 只是一个示例

【讨论】:

  • 是的,我做到了......我使用了 Notepad++ 和 sublime ......但没有运气
  • 对不起,我不擅长在评论部分格式化文本..因此,我在我的问题中添加了我的代码
猜你喜欢
  • 2013-06-25
  • 1970-01-01
  • 1970-01-01
  • 2012-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-02
相关资源
最近更新 更多